Menggabungkan Tatasusunan 2D Berdasarkan Nilai Lajur Dikongsi
Untuk tatasusunan 2D yang diberikan:
$array1 = [ ['rank' => '579', 'id' => '1'], ['rank' => '251', 'id' => '2'], ]; $array2 = [ ['size' => 'S', 'status' => 'A', 'id' => '1'], ['size' => 'L', 'status' => 'A', 'id' => '2'], ];
Menggabungkan Menggunakan Native PHP Array Fungsi
Untuk menggabungkan tatasusunan berdasarkan lajur 'id' yang dikongsi, anda boleh memanfaatkan fungsi array_merge_recursive(). Ia menggabungkan elemen secara rekursif daripada tatasusunan input sambil mengekalkan kekunci:
$merged = array_merge_recursive($array1, $array2); print_r($merged); // Output: // Array // ( // [0] => Array // ( // [rank] => 579 // [id] => 1 // [size] => S // [status] => A // ) // [1] => Array // ( // [rank] => 251 // [id] => 2 // [size] => L // [status] => A // ) // )
Fungsi Penggabungan Tersuai
Sebagai alternatif, anda boleh menentukan fungsi anda sendiri untuk menggabungkan tatasusunan berdasarkan kunci yang ditentukan:
function my_array_merge($array1, $array2, $key) { $result = []; foreach ($array1 as $item) { $result[$item[$key]] = array_merge($item, $array2[$item[$key]]); } return $result; } $merged = my_array_merge($array1, $array2, 'id'); print_r($merged); // Output: // Array // ( // [1] => Array // ( // [rank] => 579 // [id] => 1 // [size] => S // [status] => A // ) // [2] => Array // ( // [rank] => 251 // [id] => 2 // [size] => L // [status] => A // ) // )
Pertimbangkan untuk menggunakan my_array_merge() apabila bekerja dengan tatasusunan besar kerana ia berpotensi mengatasi array_merge_recursive().
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Dua Tatasusunan 2D Dengan Cekap Berdasarkan Nilai Lajur Dikongsi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!