Rumah > pembangunan bahagian belakang > masalah PHP > PHP melaksanakan penggabungan kumpulan majoriti

PHP melaksanakan penggabungan kumpulan majoriti

WBOY
Lepaskan: 2023-05-07 13:30:11
asal
1228 orang telah melayarinya

Dalam pembangunan PHP, kita sering menghadapi situasi di mana berbilang tatasusunan perlu digabungkan Tatasusunan yang digabungkan perlu mengandungi semua elemen dalam tatasusunan asal dan mengekalkan perhubungan setiap pasangan nilai kunci. Artikel ini akan memperkenalkan cara untuk mencapai penggabungan kumpulan majoriti melalui PHP.

1. Fungsi array_merge

Fungsi array_merge PHP boleh menggabungkan dua atau lebih tatasusunan ke dalam tatasusunan baru jika mereka mempunyai nama kunci yang sama. maka nilai kemudian akan menimpa nilai sebelumnya.

Kod sampel adalah seperti berikut:

$arr1 = array('a', 'b', 'c');
$arr2 = array('d', 'e', 'f');
$arr3 = array('g', 'h', 'i');

$newArr = array_merge($arr1, $arr2, $arr3);

print_r($newArr);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
    [6] => g
    [7] => h
    [8] => i
)
Salin selepas log masuk

2. Fungsi tersuai

Jika nilai yang sama wujud dalam berbilang tatasusunan untuk digabungkan Nama kunci, fungsi array_merge akan menimpa nilai sebelumnya, yang tidak memenuhi keperluan. Untuk menyelesaikan masalah ini, anda boleh menyesuaikan fungsi untuk mencapai penggabungan kumpulan majoriti.

Logik fungsi tersuai ialah: lelaran melalui semua pasangan nilai kunci tatasusunan, simpan nilai nama kunci yang sama ke tatasusunan baharu, jika nama kunci yang sama wujud, simpan nilai ke a Jika kunci tidak wujud, nilai disimpan dalam elemen tatasusunan baharu.

Kod sampel adalah seperti berikut:

function multiArrayMerge(...$arrays)
{
    $result = array();
    foreach ($arrays as $array) {
        foreach ($array as $key => $value) {
            if (is_int($key)) {
                $result[] = $value;
            } else {
                if (array_key_exists($key, $result) && is_array($value)) {
                    $result[$key] = multiArrayMerge($result[$key], $value);
                } else {
                    $result[$key] = $value;
                }
            }
        }
    }
    return $result;
}
Salin selepas log masuk

Contoh memanggil pelbagai fungsi gabungan tatasusunan:

$arr1 = array(
    'a' => 1,
    'b' => array(
        'c' => 2,
        'd' => array(
            'e' => 3
        )
    )
);

$arr2 = array(
    'a' => 4,
    'b' => array(
        'c' => 5,
        'd' => array(
            'f' => 6
        )
    )
);

$arr3 = array(
    'g' => 7,
    'h' => array(
        'i' => 8
    )
);

$result = multiArrayMerge($arr1, $arr2, $arr3);

print_r($result);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [a] => 4
    [b] => Array
        (
            [c] => 5
            [d] => Array
                (
                    [e] => 3
                    [f] => 6
                )

        )

    [g] => 7
    [h] => Array
        (
            [i] => 8
        )

)
Salin selepas log masuk

3

Apabila menggunakan fungsi tersuai untuk menggabungkan kumpulan majoriti, anda perlu memberi perhatian kepada beberapa isu:

1 Jika nama kunci yang sama wujud, konflik data mungkin berlaku selepas nilai ​​​​tatasusunan berbeza digabungkan Anda perlu mempertimbangkan logik Perniagaan tertentu diproses.

2. Untuk mengelakkan pengulangan tak terhingga fungsi, nilai dalam tatasusunan perlu dinilai Jika ia adalah tatasusunan, lakukan operasi rekursif, jika tidak, nilai itu akan disimpan terus ke tatasusunan .

3. Tiga titik (...) sebelum parameter menunjukkan senarai parameter panjang boleh ubah, yang boleh menerima sebarang bilangan parameter Senarai parameter akan ditukar secara automatik kepada tatasusunan.

4. Ringkasan

PHP menyediakan fungsi array_merge untuk menggabungkan tatasusunan, tetapi apabila perhubungan pasangan nilai-kunci perlu dikekalkan, akan ada masalah menulis ganti nilai yang sama nama kunci. Artikel ini memperkenalkan kaedah untuk melaksanakan fungsi tersuai, yang sesuai untuk situasi di mana perhubungan pasangan nilai kunci perlu dikekalkan apabila menggabungkan berbilang tatasusunan Apabila menggunakannya, anda perlu memberi perhatian kepada masalah konflik data dengan perkara yang sama nama kunci.

Atas ialah kandungan terperinci PHP melaksanakan penggabungan kumpulan majoriti. 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