Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan PHP 2D Dengan Cekap Berdasarkan Lajur Dikongsi Menggunakan Fungsi Asli?

Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan PHP 2D Dengan Cekap Berdasarkan Lajur Dikongsi Menggunakan Fungsi Asli?

Susan Sarandon
Susan Sarandonasal
2024-12-03 22:10:14626semak imbas

How Can I Efficiently Merge Two 2D PHP Arrays Based on a Shared Column Using Native Functions?

Menggabungkan Tatasusunan 2D Dengan Cekap Berdasarkan Nilai Lajur Dikongsi Menggunakan Fungsi PHP Asli

Menggabungkan berbilang tatasusunan dengan cekap ialah tugas biasa dalam pengaturcaraan PHP. Artikel ini meneroka penyelesaian optimum untuk menggabungkan dua tatasusunan 2D berdasarkan nilai lajur yang dikongsi tanpa menggunakan gelung bersarang atau prosedur yang kompleks.

Diberikan dua tatasusunan sampel:

$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 gabungkan tatasusunan ini menjadi tatasusunan baharu yang menggabungkan nilai daripada setiap tatasusunan berdasarkan id yang sepadan nilai:

$mergedArray = [
    ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'],
    ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'],
];

Menggunakan Fungsi Tatasusunan PHP Asli

Untuk memudahkan proses penggabungan ini, PHP menyediakan dua fungsi asli:

  • array_merge_recursive(): Menggabungkan dua tatasusunan secara rekursif, memelihara struktur berbilang dimensi.
  • my_array_merge(): Fungsi tersuai yang menggelung melalui tatasusunan dan menggabungkan nilai yang sepadan.

Contoh Kod Menggunakan array_merge_recursive():

$mergedArray = array_merge_recursive($array1, $array2);

Contoh Kod Menggunakan my_array_merge():

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);

Kedua-dua kaedah menggabungkan dua tatasusunan dengan berkesan, menghasilkan output yang diingini . Pilihan fungsi bergantung pada keperluan prestasi khusus dan keutamaan kejelasan kod pembangun.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan PHP 2D Dengan Cekap Berdasarkan Lajur Dikongsi Menggunakan Fungsi Asli?. 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