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
Lepaskan: 2024-12-11 08:29:11
asal
466 orang telah melayarinya

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

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

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

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

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!

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