Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menggabungkan Dua Tatasusunan 2D Dengan Cekap Berdasarkan Nilai Lajur Dikongsi dalam PHP?

Bagaimana untuk Menggabungkan Dua Tatasusunan 2D Dengan Cekap Berdasarkan Nilai Lajur Dikongsi dalam PHP?

DDD
Lepaskan: 2024-12-16 07:31:15
asal
449 orang telah melayarinya

How to Efficiently Merge Two 2D Arrays Based on a Shared Column Value in PHP?

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'],
];
Salin selepas log masuk

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
//         )
// )
Salin selepas log masuk

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
//         )
// )
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan