Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan 2D dengan Cekap dalam PHP Berdasarkan Nilai Lajur Dikongsi?

Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan 2D dengan Cekap dalam PHP Berdasarkan Nilai Lajur Dikongsi?

DDD
DDDasal
2024-12-11 08:29:11412semak imbas

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

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!

Kenyataan:
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