Rumah >pembangunan bahagian belakang >tutorial php >Pelaksanaan pengiraan malas persilangan tatasusunan dan kesatuan dalam PHP
PHP Pengiraan malas persilangan tatasusunan dan kesatuan Dalam PHP, anda boleh menggunakan penjana untuk melaksanakan pengiraan malas persimpangan tatasusunan dan kesatuan untuk menangguhkan pengiraan keputusan sehingga diperlukan: Persimpangan: Gunakan penjana array_intersect_lazy(), hanya jika elemen tatasusunan sama Hanya kemudian lelaran dan keluaran. Kesatuan: Menggunakan penjana array_union_lazy(), ulangi dua tatasusunan dan keluarkannya kepada hasilnya, menapis elemen pendua.
Pelaksanaan pengiraan malas persilangan tatasusunan dan penyatuan dalam PHP
Dalam PHP, pemprosesan persilangan tatasusunan dan penyatuan ialah operasi biasa. Biasanya, kami akan menggunakan fungsi array_intersect()
和 array_merge()
untuk melaksanakan operasi ini. Walau bagaimanapun, ini menyebabkan keputusan dikira serta-merta, yang kadangkala boleh menyebabkan masalah prestasi, terutamanya dengan tatasusunan yang besar.
Malas mengira boleh menyelesaikan masalah ini, ia membolehkan kita menangguhkan pengiraan sehingga hasilnya benar-benar diperlukan. Menggunakan penjana, kita boleh melaksanakan persilangan dan kesatuan tatasusunan yang dikira secara malas dengan mudah.
Pelaksanaan
Persimpangan
function array_intersect_lazy($array1, $array2) { foreach ($array1 as $key => $value) { if (isset($array2[$key]) && $value === $array2[$key]) { yield $value; } } }
Kesatuan
function array_union_lazy($array1, $array2) { foreach ($array1 as $key => $value) { yield $value; } foreach ($array2 as $key => $value) { if (!isset($array1[$key])) { yield $value; } } }
Kes praktikal
rreee secara terus dan benarkan kami untuk melihat keputusan secara terusulasi untuk diselesaikan. Ini boleh meningkatkan prestasi dengan ketara pada tatasusunan besar.
Atas ialah kandungan terperinci Pelaksanaan pengiraan malas persilangan tatasusunan dan kesatuan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!