Dalam bidang pengaturcaraan, memanipulasi tatasusunan adalah tugas di mana-mana. Apabila berurusan dengan tatasusunan yang berkongsi kunci biasa, keperluan untuk menggabungkannya dengan berkesan timbul. Fungsi array_merge PHP menyediakan cara yang mudah untuk menggabungkan tatasusunan, tetapi ia mempunyai had apabila ia menemui kekunci yang bertindih.
Pertimbangkan senario berikut:
$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge($A, $B); // Result [a] => 1 [b] => 2 [c] => 4 [d] => 5
Seperti yang anda boleh perhatikan, Kunci 'c' dalam $A (dengan nilai 3) hilang daripada hasil gabungan. Ini berlaku kerana array_merge menimpa kekunci pendua dengan nilai daripada tatasusunan kedua.
Untuk mengatasi cabaran ini dan menggabungkan tatasusunan dengan kekunci yang sepadan sambil mengekalkan nilainya, anda perlu menyelidiki fungsi yang lebih maju: array_merge_recursive.
Fungsi array_merge_recursive, tidak seperti rakan sejawatannya, mengendalikan kekunci bertindih secara berbeza. Daripada menulis ganti, ia mencipta tatasusunan bersarang untuk menyimpan nilai yang dikaitkan dengan kunci pendua. Mari kita lihat semula contoh menggunakan array_merge_recursive:
array_merge_recursive($A, $B); // Result [a] => 1 [b] => 2 [c] => array( [0] => 3, [1] => 4 ) [d] => 5
Seperti yang anda lihat, menggunakan array_merge_recursive mengekalkan kedua-dua nilai yang dikaitkan dengan kekunci 'c'. Ia mencipta tatasusunan yang mengandungi kedua-dua 3 dan 4. Tingkah laku ini memastikan anda mengekalkan semua maklumat daripada kedua-dua tatasusunan sambil masih menggabungkannya menjadi satu struktur.
Apabila ia melibatkan penggabungan tatasusunan dengan kunci kongsi, menggunakan array_merge_recursive menyediakan penyelesaian yang mantap. Dengan mencipta tatasusunan bersarang untuk kunci pendua, ia memastikan tiada data yang hilang atau ditimpa dalam proses penggabungan, memberikan anda perwakilan yang lengkap dan tepat bagi kedua-dua tatasusunan dalam hasil gabungan.
Atas ialah kandungan terperinci Bagaimanakah array_merge_recursive mengendalikan kunci pendua dalam penggabungan tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!