Rumah > Artikel > pembangunan bahagian belakang > Algoritma penggabungan tatasusunan PHP dan penyahduplikasian: penyelesaian selari
Algoritma penggabungan tatasusunan PHP dan penyahduplikasian menyediakan penyelesaian selari, membahagikan tatasusunan asal kepada blok kecil untuk pemprosesan selari, dan proses utama menggabungkan hasil blok untuk nyahduplikasi. Langkah-langkah algoritma: Pisahkan tatasusunan asal kepada blok kecil yang diperuntukkan sama. Proses setiap blok untuk penyahduplikasian secara selari. Gabungkan hasil blok dan nyahduplikasi semula.
Pengenalan
Dalam PHP, kita boleh menggunakan fungsi array_merge()
untuk menggabungkan tatasusunan. Walau bagaimanapun, apabila unsur pendua hadir, tatasusunan yang digabungkan akan mengandungi unsur pendua. Artikel ini menerangkan algoritma selari untuk menggabungkan tatasusunan dengan cekap dan mengalih keluar elemen pendua.
Algoritma
Algoritma berfungsi dengan membahagikan tatasusunan asal kepada ketulan kecil dan memproses setiap ketulan secara selari. Pada masa yang sama, proses utama bertanggungjawab untuk menggabungkan hasil setiap blok dan menjana tatasusunan pendua akhir.
Kod
<?php use Parallel\{Parallel}; // 要合并的原始数组 $array1 = [1, 2, 3, 4, 5]; $array2 = [3, 4, 5, 6, 7]; // 使用 Parallel 类将数组分成小块 $parallel = new Parallel(); $blocks = $parallel->chunk($array1, 5); $blocks[] = $array2; // 添加第二个数组 // 并行处理每个块以去除重复元素 $results = $parallel->map($blocks, function ($block) { return array_unique($block); }); // 合并每个块的结果 $merged = array_merge(...$results); // 对合并后的数组进行去重 $unique = array_unique($merged); // 输出去重后的数组 print_r($unique);
Kes praktikal
Algoritma ini amat sesuai untuk senario di mana sejumlah besar data diproses. Sebagai contoh, jika anda mempunyai tatasusunan dengan berjuta-juta elemen, anda boleh memecahkan tatasusunan kepada ketulan kecil dan memprosesnya secara selari menggunakan CPU atau kluster berbilang teras. Ini dengan ketara meningkatkan kelajuan penggabungan tatasusunan dan penyahduplikasian.
Nota
Atas ialah kandungan terperinci Algoritma penggabungan tatasusunan PHP dan penyahduplikasian: penyelesaian selari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!