Rumah pembangunan bahagian belakang masalah PHP PHP melaksanakan penggabungan kumpulan majoriti

PHP melaksanakan penggabungan kumpulan majoriti

May 07, 2023 pm 01:30 PM

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!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Apakah amalan terbaik untuk deduplikasi tatasusunan php Apakah amalan terbaik untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:41 PM

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Bagaimana saya bekerja dengan sambungan php dan pecl?

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Mar 03, 2025 pm 04:51 PM

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Mar 03, 2025 pm 04:47 PM

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:50 PM

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

See all articles