Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggabungkan tatasusunan dua dimensi dalam php tanpa mengubah nilai utama
Dalam PHP, tatasusunan ialah struktur data yang sangat penting yang boleh digunakan dalam banyak senario. Tatasusunan dua dimensi adalah salah satu daripadanya, biasanya digunakan untuk menyimpan data seperti jadual atau matriks. Dalam pembangunan sebenar, anda mungkin menghadapi situasi di mana anda perlu menggabungkan dua atau lebih tatasusunan dua dimensi ke dalam tatasusunan dua dimensi yang baharu. Walau bagaimanapun, jika anda terus menggunakan fungsi array_merge
PHP sendiri untuk bergabung, akan ada masalah: nilai kunci yang digabungkan akan berubah. Jadi, mari kita bincangkan cara menggabungkan tatasusunan dua dimensi tanpa mengubah nilai utama.
Dalam PHP, tatasusunan dua dimensi sebenarnya ialah tatasusunan yang mengandungi berbilang tatasusunan satu dimensi. Setiap tatasusunan satu dimensi ialah subarray di mana berbilang pasangan nilai kunci boleh disimpan. Sebagai contoh, berikut ialah tatasusunan dua dimensi yang mengandungi dua sub-tatasusunan:
$array = [ [ 'name' => 'John', 'age' => 25, ], [ 'name' => 'Mary', 'age' => 30, ], ];
Dapat dilihat bahawa setiap sub-tatasusunan mewakili maklumat seseorang, dengan name
dan age
ialah kunci , sepadan dengan Nilai masing-masing ialah nama dan umur orang itu. Dalam pembangunan sebenar, banyak operasi perlu dilakukan pada data struktur ini, seperti pengisihan, penapisan, penggabungan, dsb. tatasusunan.
Dalam PHP, terdapat banyak cara untuk menggabungkan tatasusunan, antaranya menggunakan fungsi array_merge
ialah kaedah biasa. Fungsi ini boleh menggabungkan berbilang tatasusunan ke dalam tatasusunan baharu, dan nilai kunci yang digabungkan akan disusun semula secara automatik. Berikut ialah contoh menggunakan fungsi array_merge
untuk menggabungkan dua tatasusunan dua dimensi:
$array1 = [ [ 'name' => 'John', 'age' => 25, ], ]; $array2 = [ [ 'name' => 'Mary', 'age' => 30, ], ]; $array = array_merge($array1, $array2); var_dump($array);
Hasil output ialah:
array(2) { [0]=> array(2) { ["name"]=> string(4) "John" ["age"]=> int(25) } [1]=> array(2) { ["name"]=> string(4) "Mary" ["age"]=> int(30) } }
Seperti yang anda lihat, gabungan tatasusunan mengikut asal Susunan disusun semula dan nilai kunci ditetapkan semula kerana fungsi array_merge
akan menggunakan nilai kunci semua tatasusunan sebagai kunci tatasusunan baharu dan nilai tatasusunan baharu kunci ialah nilai dalam tatasusunan asal. Jika terdapat nilai kunci pendua dalam tatasusunan asal, tatasusunan berikutnya akan menimpa nilai dalam tatasusunan sebelumnya. Tingkah laku ini tidak diingini dalam banyak senario, kerana nilai utama tatasusunan asal mungkin mengandungi maklumat penting, dan menyusun semula atau menulis ganti boleh menyebabkan ralat data. Jadi, adakah terdapat cara untuk mengekalkan nilai utama tatasusunan asal?
array_replace_recursive
ialah kaedah penggabungan tatasusunan lain yang disertakan dengan PHP Tidak seperti fungsi array_merge
, ia akan mengekalkan tatasusunan asal. nilai utama dan bukannya menyusun semula atau menulis ganti. Selain itu, fungsi array_replace_recursive
juga menyokong penggabungan rekursif tatasusunan, yang boleh mengendalikan penggabungan tatasusunan berbilang dimensi. Berikut ialah contoh menggunakan fungsi array_replace_recursive
untuk menggabungkan dua tatasusunan dua dimensi:
$array1 = [ [ 'name' => 'John', 'age' => 25, ], ]; $array2 = [ [ 'name' => 'Mary', 'age' => 30, ], ]; $array = array_replace_recursive($array1, $array2); var_dump($array);
Hasil output ialah:
array(1) { [0]=> array(2) { ["name"]=> string(4) "Mary" ["age"]=> int(30) } }
Seperti yang anda lihat, gabungan tatasusunan mengekalkan kunci dan susunan tatasusunan asal, bukannya menukar susunannya atau menimpa nilainya. Selain itu, fungsi array_replace_recursive
juga menyokong penggabungan tatasusunan berbilang dimensi, menjadikan pemprosesan lebih mudah. Walau bagaimanapun, perlu diingatkan bahawa apabila menggabungkan tatasusunan secara rekursif, jika struktur tatasusunan tidak konsisten, hasilnya mungkin tidak normal, jadi perhatian khusus diperlukan.
Dalam PHP, tatasusunan dua dimensi ialah salah satu daripada struktur data biasa. Dalam pembangunan sebenar, anda mungkin menghadapi situasi di mana anda perlu menggabungkan dua atau lebih tatasusunan dua dimensi ke dalam tatasusunan dua dimensi yang baharu. Jika anda terus menggunakan fungsi array_merge
PHP sendiri untuk bergabung, tatasusunan akan disusun semula atau nilai kunci akan ditimpa. Untuk mengekalkan nilai utama dan susunan tatasusunan asal, anda boleh menggunakan fungsi array_replace_recursive
untuk menggabungkan tatasusunan. Selain itu, fungsi array_replace_recursive
juga menyokong penggabungan rekursif tatasusunan, yang sangat mudah. Walau bagaimanapun, perlu diingatkan bahawa apabila mencantum tatasusunan secara rekursif, perhatian khusus perlu diberikan kepada struktur tatasusunan untuk mengelakkan situasi tidak normal.
Atas ialah kandungan terperinci Bagaimana untuk menggabungkan tatasusunan dua dimensi dalam php tanpa mengubah nilai utama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!