Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengira Produk Cartesan Berbilang Tatasusunan dalam PHP?

Bagaimana untuk Mengira Produk Cartesan Berbilang Tatasusunan dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-14 12:15:02
asal
909 orang telah melayarinya

How to Calculate the Cartesian Product of Multiple Arrays in PHP?

Produk Cartesian Pelbagai Tatasusunan: Penyelesaian Komprehensif

Apabila berurusan dengan berbilang tatasusunan, mungkin timbul keperluan untuk menjana jadual yang mengandungi setiap kemungkinan gabungan elemen daripada ini tatasusunan, sambil mengelakkan pengulangan. Operasi matematik ini dikenali sebagai produk Cartesian.

Untuk menangani cabaran ini dalam PHP, pertimbangkan untuk menggunakan fungsi berikut:

function array_cartesian() {
    $_ = func_get_args();
    if(count($_) == 0)
        return array(array());
    $a = array_shift($_);
    $c = call_user_func_array(__FUNCTION__, $_);
    $r = array();
    foreach($a as $v)
        foreach($c as $p)
            $r[] = array_merge(array($v), $p);
    return $r;
}

$cross = array_cartesian(
    array('apples', 'pears',  'oranges'),
    array('steve', 'bob')
);

print_r($cross);
Salin selepas log masuk

Fungsi ini mengambil argumen panjang berubah-ubah, setiap satu mewakili tatasusunan . Ia secara rekursif mengira produk Cartesian dengan memilih elemen daripada tatasusunan pertama dan menggabungkannya dengan semua kemungkinan produk Cartesian bagi tatasusunan yang tinggal.

Hasilnya ialah tatasusunan bersarang yang mengandungi setiap gabungan unik elemen daripada tatasusunan input. Dalam contoh yang diberikan, produk Cartesian dua tatasusunan akan menghasilkan:

Array 0            Array 1
apples             steve
apples             bob
pears              steve
pears              bob
Salin selepas log masuk

Penyelesaian ini bukan sahaja berkesan untuk tatasusunan dengan dua dimensi tetapi juga boleh dilanjutkan untuk mengendalikan sebarang bilangan tatasusunan. Ia menyediakan cara ringkas dan elegan untuk menyelesaikan masalah produk Cartesian dalam PHP.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Produk Cartesan Berbilang Tatasusunan dalam PHP?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan