Menggabungkan Tatasusunan dengan " " Operator: Membongkar Gelagatnya
Dalam PHP, pengendali memudahkan penggabungan dua tatasusunan, menambahkan elemen daripada tatasusunan sebelah kanan ke tatasusunan sebelah kiri. Walau bagaimanapun, memahami cara ia mengendalikan kunci pendua adalah penting.
Cara Ia Berfungsi
Menurut Manual PHP:
The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.
Contoh
Pertimbangkan perkara berikut contoh:
$test = array('hi'); $test += array('test', 'oh'); var_dump($test);
Output:
array(2) { [0]=> string(2) "hi" [1]=> string(2) "oh" }
Penjelasan
Operator menambahkan elemen daripada tatasusunan kedua (ujian, oh) ke penghujung tatasusunan pertama (hi). Walau bagaimanapun, ia tidak menggantikan kunci pendua (hi), jadi ia kekal dalam tatasusunan yang digabungkan.
Perbandingan dengan array_merge()
Pengendali berbeza daripada array_merge() berfungsi dalam tingkah lakunya apabila mengendalikan kunci pendua. array_merge() menimpa kekunci pendua daripada tatasusunan sebelah kiri dengan kekunci daripada tatasusunan sebelah kanan.
Butiran Pelaksanaan
Pelaksanaan peringkat C pengendali boleh ditemui dalam php-src/Zend/zend_operators.c. Logiknya adalah bersamaan dengan coretan berikut:
$union = $array1; foreach ($array2 as $key => $value) { if (false === array_key_exists($key, $union)) { $union[$key] = $value; } }
Coretan ini mencipta tatasusunan baharu ($penyatuan) berdasarkan tatasusunan pertama ($array1) dan menambah kunci dan nilai bukan pendua daripada tatasusunan kedua ( $array2).
Kesimpulan
Pengendali dalam PHP menyediakan cara yang mudah untuk menggabungkan tatasusunan, tetapi amat penting untuk memahami tingkah laku khusus apabila ia menemui kunci pendua. Fungsi array_merge() menawarkan alternatif yang menimpa kekunci pendua, membenarkan lebih kawalan ke atas tatasusunan yang digabungkan.
Atas ialah kandungan terperinci Bagaimanakah Pengendali PHP ' ' Menggabung Tatasusunan dan Mengendalikan Kekunci Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!