Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan 2D dengan Cekap dalam PHP Berdasarkan Nilai Lajur Dikongsi?
Menggabungkan Tatasusunan 2D mengikut Nilai Lajur Dikongsi
Menggabungkan dua tatasusunan berbilang dimensi dengan nilai yang dikongsi boleh menjadi tugas pengaturcaraan biasa. Walaupun pendekatan berulang tradisional menggunakan gelung bersarang dan semakan bersyarat boleh dipercayai, pendekatan tersebut selalunya boleh membawa kepada kod verbose dan berkemungkinan tidak cekap. Artikel ini meneroka penyelesaian elegan menggunakan fungsi tatasusunan PHP asli.
Pertimbangkan dua tatasusunan berikut:
$array1 = [ ['rank' => '579', 'id' => '1'], ['rank' => '251', 'id' => '2'], ]; $array2 = [ ['size' => 'S', 'status' => 'A', 'id' => '1'], ['size' => 'L', 'status' => 'A', 'id' => '2'], ];
Matlamatnya adalah untuk menggabungkan tatasusunan ini berdasarkan nilai 'id' dikongsi mereka, menghasilkan keputusan berikut:
[ ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'], ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'], ]
Penyelesaian 1: array_merge_recursive
Fungsi array_merge_recursive() PHP membolehkan penggabungan tatasusunan, menggabungkan elemen secara rekursif dengan kekunci yang sepadan.
$mergedArray = array_merge_recursive($array1, $array2);
Penyelesaian ini mudah dan menghasilkan hasil yang diinginkan tanpa memerlukan gelung tambahan atau syarat.
Penyelesaian 2: Fungsi Tersuai
Sebagai alternatif, fungsi tersuai boleh dibuat untuk melaksanakan gabungan dengan cara yang berpotensi lebih cekap:
function my_array_merge(array &$array1, array &$array2) { $result = []; foreach ($array1 as $key => &$value) { $result[$key] = array_merge($value, $array2[$key]); } return $result; } $mergedArray = my_array_merge($array1, $array2);
Fungsi ini berulang melalui tatasusunan pertama, menggabungkan setiap elemen dengan elemen yang sepadan daripada tatasusunan kedua berdasarkan padanan kekunci.
Kedua-dua penyelesaian menyediakan cara yang berkesan untuk menggabungkan tatasusunan 2D berdasarkan nilai lajur yang dikongsi. Pendekatan khusus yang dipilih mungkin bergantung pada faktor seperti keperluan prestasi atau keutamaan kebolehbacaan kod.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan 2D dengan Cekap dalam PHP Berdasarkan Nilai Lajur Dikongsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!