Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menjana Semua Gabungan Array dalam PHP?

Bagaimanakah Saya Boleh Menjana Semua Gabungan Array dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-06 19:27:13
asal
673 orang telah melayarinya

How Can I Generate All Combinations of an Array in PHP?

Algoritma PHP untuk Menjana Gabungan Tatasusunan

Dalam PHP, menjana gabungan elemen daripada tatasusunan selalunya merupakan keperluan praktikal. Pertimbangkan tatasusunan yang mengandungi nombor 1, 2, 3, 4, 5, 6, dan 7. Katakan kita ingin memilih 5 elemen daripada tatasusunan ini sambil mengabaikan susunannya. Sebagai contoh, (1, 2, 3, 4, 5) dan (4, 5, 3, 1, 2) dianggap gabungan yang sama.

Penyelesaian Menggunakan Kelas Iterator

Satu penyelesaian yang direka dengan baik melibatkan penggunaan kelas Iterator bernama Gabungan. Kelas ini ialah pelaksanaan antara muka Iterator dan menawarkan kaedah mudah untuk lelaran melalui kombinasi:

class Combinations implements Iterator
{
    // ... (class definition as provided in the answer)
}
Salin selepas log masuk

Dalam kelas ini, gabungan boleh dijana dengan memanggil kaedah next() secara berulang, yang mengembalikan seterusnya gabungan sebagai nilai semasa. Proses ini berterusan sehingga kaedah valid() mengembalikan palsu, menunjukkan bahawa semua gabungan telah habis.

Contoh

Untuk menggambarkan, mari kita cipta contoh kelas Gabungan dan lelaran melalui gabungan tatasusunan yang diberikan:

$combinations = new Combinations([1, 2, 3, 4, 5, 6, 7], 5);
foreach ($combinations as $combination) {
    echo implode(', ', $combination) . ' ';
}
Salin selepas log masuk

Kod ini akan menghasilkan yang berikut output:

1, 2, 3, 4, 5 1, 2, 3, 4, 6 1, 2, 3, 4, 7 1, 2, 3, 5, 6 1, 2, 3, 5, 7 1, 2, 3, 6, 7 1, 2, 4, 5, 6 1, 2, 4, 5, 7 1, 2, 4, 6, 7 1, 2, 5, 6, 7 1, 3, 4, 5, 6 1, 3, 4, 5, 7 1, 3, 4, 6, 7 1, 3, 5, 6, 7 1, 4, 5, 6, 7 2, 3, 4, 5, 6 2, 3, 4, 5, 7 2, 3, 4, 6, 7 2, 3, 5, 6, 7 2, 4, 5, 6, 7 3, 4, 5, 6, 7
Salin selepas log masuk

Dengan menggunakan penyelesaian ini, seseorang boleh menjana dan mengulang secara berkesan melalui gabungan elemen tatasusunan dalam PHP, menangani cabaran yang diterangkan dalam pertanyaan awal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Gabungan Array 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