Menggabungkan Tatasusunan dalam PHP: Mengapa Operator Gagal
Apabila cuba untuk menyertai tatasusunan menggunakan operator " ", seseorang mungkin menemui hasil yang tidak dijangka. Pertimbangkan kod berikut:
$array = array('Item 1'); $array += array('Item 2'); var_dump($array);
Output:
array(1) { [0] => string(6) "Item 1" }
Mengapa ini tidak berfungsi?
Kunci dan Pendua
Isunya terletak pada kunci tatasusunan dan nilai pendua. Kedua-dua tatasusunan dalam kod yang diberikan mempunyai kunci "0", menyebabkan nilai pendua saling timpa satu sama lain. Untuk mengekalkan susunan asal dan mengelakkan pertindihan, PHP menggunakan nilai pertama untuk kekunci "0."
Penyelesaian: Penggabungan Array
Untuk menggabungkan tatasusunan dengan betul, gunakan array_merge ():
$arr1 = array('foo'); // Same as array(0 => 'foo') $arr2 = array('bar'); // Same as array(0 => 'bar') $combined = array_merge($arr1, $arr2);
array_merge() menggabungkan tatasusunan, mengekalkan pasangan nilai kunci.
Bila Menggunakan Operator
Pengendali " " masih berguna apabila menggabungkan tatasusunan dengan kekunci yang berbeza:
$arr1 = array('one' => 'foo'); $arr2 = array('two' => 'bar'); $combined = $arr1 + $arr2;
Ini akan mengakibatkan:
array('one' => 'foo', 'two' => 'bar');
Ringkasnya, gunakan array_merge() untuk menggabungkan tatasusunan untuk mengekalkan susunan dan mengelakkan konflik utama . Gunakan operator " " untuk menggabungkan tatasusunan dengan kekunci unik.
Atas ialah kandungan terperinci Mengapa Operator ( ) Gagal Apabila Menggabungkan Tatasusunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!