Rumah > Artikel > pembangunan bahagian belakang > Tambah tatasusunan berbeza dalam php
Dalam PHP, tatasusunan ialah jenis data yang sangat fleksibel dan biasa digunakan yang boleh menyimpan berbilang nilai (elemen), dan nilai ini boleh terdiri daripada sebarang jenis data. Apabila kita perlu menambah tatasusunan yang berbeza, kita perlu memahami kaedah penambahan yang berbeza dan langkah berjaga-jaga yang sepadan.
Fungsi array_merge() boleh menggabungkan dua atau lebih tatasusunan ke dalam tatasusunan baharu, yang akan menggabungkan semua tatasusunan input elemen dimasukkan ke dalam tatasusunan baharu, indeks bermula semula dari 0, dan nama kunci tatasusunan asal boleh dikekalkan tanpa menimpa nilai nama kunci yang sama. Berikut ialah contoh:
$array1 = array('a', 'b', 'c'); $array2 = array('d', 'e', 'f'); $array3 = array_merge($array1, $array2); print_r($array3);
Hasil output ialah:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )
Perlu diambil perhatian bahawa jika nilai-nilai nama kunci yang sama ialah tatasusunan, fungsi array_merge() akan menggabungkan mereka secara rekursif, iaitu Gabungkan subarray bersama-sama. Jika nama kunci ialah nombor, hasil gabungan ditukar secara automatik kepada tatasusunan yang diindeks secara berangka.
Dalam PHP, anda boleh menggunakan operator + untuk menggabungkan dua tatasusunan menjadi tatasusunan baharu, tetapi tidak seperti fungsi array_merge() What's menarik ialah operator + hanya akan mengekalkan nama dan nilai kunci dalam tatasusunan di sebelah kiri, dan nilai dengan nama kunci yang sama dalam tatasusunan di sebelah kanan akan diabaikan. Berikut ialah contoh:
$array1 = array('a', 'b', 'c'); $array2 = array('d' => 1, 'e', 'f'); $array3 = $array1 + $array2; print_r($array3);
Outputnya ialah:
Array ( [0] => a [1] => b [2] => c [d] => 1 [1] => e [2] => f )
Perlu diambil perhatian bahawa jika nama kunci tatasusunan ialah rentetan, operator + akan menganggapnya sebagai tatasusunan bersekutu . Jika tatasusunan di sebelah kiri mengandungi kedua-dua kunci indeks angka dan rentetan, kunci indeks rentetan dalam tatasusunan kanan akan diabaikan.
Jika nilai-nilai nama kunci yang sama ialah tatasusunan, kemudian gunakan array_merge() fungsi untuk bergabung hanya akan menimpa nilai sebelumnya yang sepadan dengan nama kunci dalam tatasusunan tanpa menggabungkan sub-tatasusunan secara rekursif. Jika anda perlu menggabungkan subarray secara rekursif dengan nama kunci yang sama, anda boleh menggunakan fungsi array_merge_recursive(). Berikut ialah contoh:
$array1 = array('a' => array('b'), 'c'); $array2 = array('a' => array('d'), 'e'); $array3 = array_merge_recursive($array1, $array2); print_r($array3);
Outputnya ialah:
Array ( [a] => Array ( [0] => b [1] => d ) [0] => c [1] => e )
Perlu diambil perhatian bahawa fungsi array_merge_recursive() akan menggabungkan sub-array bersama-sama dan menggabungkan nilai dengan nama kunci yang sama ke dalam satu tatasusunan.
fungsi array_replace() boleh menggabungkan dua atau lebih tatasusunan ke dalam tatasusunan baharu, tetapi ia berbeza daripada array_merge Perbezaan dengan fungsi () ialah nilai dengan nama kunci yang sama akan digantikan dengan nilai berikutnya dan bukannya digabungkan ke dalam tatasusunan. Berikut ialah contoh:
$array1 = array('a', 'b', 'c'); $array2 = array('b', 'd'); $array3 = array_replace($array1, $array2); print_r($array3);
Hasil keluaran ialah:
Array ( [0] => a [1] => b [2] => c [3] => d )
Perlu diambil perhatian bahawa fungsi array_replace() hanya akan menggantikan nilai nama kunci jika nama kunci wujud dalam tatasusunan, tidak wujud dalam tatasusunan lain, maka nilainya akan kekal tidak berubah.
Ringkasnya, PHP menyediakan pelbagai kaedah untuk menggabungkan tatasusunan, dan kita boleh memilih kaedah yang hendak digunakan berdasarkan keperluan sebenar. Jika anda perlu mengekalkan nama kunci tatasusunan asal, anda boleh menggunakan fungsi array_merge() jika anda perlu menggabungkan subarray secara rekursif, anda boleh menggunakan fungsi array_merge_recursive() jika anda perlu menggantikan nilai dengan nama kunci yang sama daripada menggabungkannya ke dalam tatasusunan, anda boleh menggunakan fungsi array_replace ().
Atas ialah kandungan terperinci Tambah tatasusunan berbeza dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!