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) }
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) . ' '; }
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
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!