PHP melaksanakan penggabungan kumpulan majoriti
May 07, 2023 pm 01:30 PMDalam 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);
Hasil output ialah:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i )
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; }
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);
Hasil output ialah:
Array ( [a] => 4 [b] => Array ( [c] => 5 [d] => Array ( [e] => 3 [f] => 6 ) ) [g] => 7 [h] => Array ( [i] => 8 ) )
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!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Bagaimana saya bekerja dengan sambungan php dan pecl?

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

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?
