Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memaparkan Elemen Secara Rawak tanpa Mengulanginya dalam Senarai?
Menjana Penyenaraian Rawak Unik tanpa Ulangan
Merawak elemen tanpa pengulangan adalah masalah biasa dalam pengaturcaraan. Seperti yang anda temui, menggunakan fungsi rand() yang mudah mungkin tidak mencukupi untuk senario khusus anda, di mana anda perlu memaparkan semua elemen sekali sebelum ulangan berlaku.
Kaedah yang paling berkesan untuk masalah ini ialah menjana senarai semua nombor yang mungkin, kocokkannya untuk merawak susunan, dan kemudian gunakan nombor ini untuk mendapatkan penyenaraian yang diingini. Berikut ialah penyelesaian yang dioptimumkan:
<code class="php">$numbers = range(0, 19); shuffle($numbers);</code>
Kod ini mencipta tatasusunan yang mengandungi nombor dari 0 hingga 19 dan mengocoknya untuk mendapatkan susunan rawak. Anda kemudiannya boleh mengulangi tatasusunan nombor dan mendapatkan semula penyenaraian yang sepadan daripada tatasusunan $businesses anda. Dengan menggunakan pendekatan ini, kesemua 20 penyenaraian akan ditunjukkan sekali sebelum penyenaraian diulang.
Alternatifnya ialah menggunakan fungsi tersuai:
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); }</code>
Fungsi ini mengambil tiga parameter: minimum dan nilai maksimum, dan kuantiti nombor rawak yang dikehendaki. Ia menjana tatasusunan nombor rawak dalam julat yang diberikan dan mengembalikan bilangan elemen yang ditentukan.
Dalam kes anda, anda boleh menjana 20 nombor rawak unik dalam julat penyenaraian Yelp:
<code class="php">print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>
Untuk menyepadukan teknik ini dengan respons API Yelp anda, anda boleh melaksanakan kemas kini berikut:
Dengan melaksanakan pendekatan ini, anda akan memastikan bahawa kesemua 20 penyenaraian dipaparkan sekali sebelum sebarang pengulangan berlaku, memenuhi fungsi yang anda inginkan .
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Elemen Secara Rawak tanpa Mengulanginya dalam Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!