Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Menjana Nombor Rawak tanpa Pengulangan untuk Penyenaraian Randomizer Komprehensif?
Menjana Nombor Rawak tanpa Pengulangan: Panduan Komprehensif
Dalam usaha anda untuk membangunkan tapak web yang merawak penyenaraian Yelp, anda mencari kaedah yang memastikan kesemua 20 penyenaraian dipaparkan sekali sebelum sebarang pengulangan berlaku. Mari kita terokai pelbagai pendekatan untuk menangani cabaran ini.
Pendekatan rand(0, 19) PHP
Pelaksanaan semasa anda menggunakan rand(0, 19) PHP untuk menjana indeks rawak untuk memilih penyenaraian Yelp. Walau bagaimanapun, kaedah ini mempunyai had: ia boleh mengulangi nombor. Untuk mengatasinya, kami memerlukan pendekatan yang lebih canggih.
Mengocok Julat Nombor
Satu penyelesaian yang berkesan ialah mengocok julat nombor yang mewakili indeks penyenaraian. Ini boleh dicapai menggunakan range() dan shuffle() seperti berikut:
<code class="php">$numbers = range(0, 19); shuffle($numbers);</code>
Ini mencipta tatasusunan yang mengandungi nombor dari 0 hingga 19 dalam susunan rawak.
Penyelesaian Alternatif Menggunakan Fungsi randomGen()
Pendekatan lain ialah menggunakan fungsi randomGen() tersuai yang menerima minimum, maksimum dan kuantiti sebagai parameter. Ia menjana senarai nombor rawak unik dalam julat yang ditentukan:
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); } print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>
Menyimpan Nombor Terpakai dan Mengemas kini dalam Pangkalan Data
Untuk memastikan semua penyenaraian ditunjukkan tanpa ulangan, anda boleh menyimpan senarai yang dipaparkan dalam pangkalan data. Setiap kali anda memaparkan penyenaraian rawak, semak sama ada IDnya sepadan dengan mana-mana dalam pangkalan data. Jika tidak, paparkan penyenaraian dan tambahkan IDnya pada pangkalan data. Ulangi proses ini sehingga semua penyenaraian telah dipaparkan.
Kaedah ini memastikan setiap penyenaraian dipaparkan tepat sekali sebelum sebarang pengulangan berlaku.
Atas ialah kandungan terperinci Bagaimana Menjana Nombor Rawak tanpa Pengulangan untuk Penyenaraian Randomizer Komprehensif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!