Menggabungkan Tatasusunan Bersekutu dan Melengkapkan Lajur Hilang dengan Nilai Lalai
Pertimbangkan kod berikut:
<code class="php">$a = ['a' => 'some value', 'b' => 'some value', 'c' => 'some value']; $b = ['a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value']; $c = ['b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value']; $d = [$a, $b, $c];</code>
Apabila anda gunakan var_export($d), anda mendapat output berikut:
<code class="php">array ( 0 => array ( 'a' => 'some value', 'b' => 'some value', 'c' => 'some value', ), 1 => array ( 'a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value', ), 2 => array ( 'b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value', ), )</code>
Gabungkan Kekunci Tatasusunan dengan Nilai Lalai
Untuk menggabungkan kekunci tatasusunan dan isikan lajur yang tiada dengan nilai lalai, anda boleh menggunakan array_merge:
<code class="php">$keys = array(); foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) { $keys[$key] = ''; } $data = array(); foreach ($d as $values) { $data[] = array_merge($keys, $values); } echo '<pre class="brush:php;toolbar:false">'; print_r($data);</code>
Hasil:
<code class="php">Array ( [0] => Array ( [a] => some value [b] => some value [c] => some value [d] => [e] => [f] => [x] => [y] => [z] => ) [1] => Array ( [a] => another value [b] => [c] => [d] => another value [e] => another value [f] => another value [x] => [y] => [z] => ) [2] => Array ( [a] => [b] => some more value [c] => [d] => [e] => [f] => [x] => some more value [y] => some more value [z] => some more value ) )</code>
Pendekatan Lain
Sebagai alternatif, anda boleh mencipta nilai pasangan kunci dan kemudian menggabungkannya:
<code class="php">$keys = array_keys(call_user_func_array('array_merge', $d)); $key_pair = array_combine($keys, array_fill(0, count($keys), null)); $values = array_map(function($e) use ($key_pair) { return array_merge($key_pair, $e); }, $d);</code>
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Tatasusunan Bersekutu dengan Berkesan dan Mengendalikan Lajur Hilang dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!