Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggabungkan berbilang tatasusunan ke dalam satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP
Cara menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP
Dalam pembangunan, kami sering menghadapi keperluan untuk menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan. Keperluan ini sangat biasa apabila bekerja dengan data, terutamanya apabila bekerja dengan set hasil pangkalan data, contohnya. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk mencapai fungsi ini dan memberikan contoh kod yang sepadan.
Kaedah 1: Gunakan loop traversal
Kaedah paling mudah ialah menggunakan gelung untuk melintasi semua tatasusunan dan menambah nilai yang sepadan ke tatasusunan baharu mengikut nama kunci yang ditentukan. Kod sampel adalah seperti berikut:
function mergeArrays($key, ...$arrays) { $result = []; foreach ($arrays as $array) { if (isset($array[$key])) { $result[] = $array[$key]; } } return $result; } $array1 = ['id' => 1, 'name' => 'Alice']; $array2 = ['id' => 2, 'name' => 'Bob']; $array3 = ['id' => 3, 'name' => 'Charlie']; $result = mergeArrays('name', $array1, $array2, $array3); print_r($result);
Jalankan kod di atas, hasil output ialah:
Array ( [0] => Alice [1] => Bob [2] => Charlie )
Kaedah 2: Gunakan fungsi array_map
array_map untuk menggunakan fungsi panggil balik pada berbilang tatasusunan dan kembalikan tatasusunan baharu. Kita boleh menggunakan fungsi ini untuk menggabungkan berbilang tatasusunan. Kod sampel adalah seperti berikut:
function mergeArrays($key, ...$arrays) { $callback = function ($array) use ($key) { return $array[$key] ?? null; }; $result = array_map($callback, $arrays); return array_filter($result, function($value) { return $value !== null; }); } $array1 = ['id' => 1, 'name' => 'Alice']; $array2 = ['id' => 2, 'name' => 'Bob']; $array3 = ['id' => 3, 'name' => 'Charlie']; $result = mergeArrays('name', $array1, $array2, $array3); print_r($result);
Jalankan kod di atas, hasil output ialah:
Array ( [0] => Alice [1] => Bob [2] => Charlie )
Kaedah 3: Gunakan fungsi array_reduce
array_reduce fungsi digunakan untuk memproses secara berulang elemen dalam tatasusunan, memprosesnya mengikut yang ditentukan fungsi panggil balik, dan Kembalikan hasil akhir. Kita boleh menggunakan fungsi ini untuk menggabungkan berbilang tatasusunan. Kod sampel adalah seperti berikut:
function mergeArrays($key, ...$arrays) { $callback = function ($result, $array) use ($key) { if (isset($array[$key])) { $result[] = $array[$key]; } return $result; }; $result = array_reduce($arrays, $callback, []); return $result; } $array1 = ['id' => 1, 'name' => 'Alice']; $array2 = ['id' => 2, 'name' => 'Bob']; $array3 = ['id' => 3, 'name' => 'Charlie']; $result = mergeArrays('name', $array1, $array2, $array3); print_r($result);
Jalankan kod di atas, hasil output ialah:
Array ( [0] => Alice [1] => Bob [2] => Charlie )
Di atas adalah contoh beberapa kaedah biasa untuk menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan. Memilih kaedah yang sesuai mengikut situasi sebenar boleh meningkatkan kecekapan dan kebolehbacaan kod. Harap ini membantu!
Atas ialah kandungan terperinci Bagaimana untuk menggabungkan berbilang tatasusunan ke dalam satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!