Semasa anda membina tapak web yang menggunakan pemilihan rawak untuk memaparkan penyenaraian Yelp dengan setiap penyegaran halaman, anda menghadapi cabaran untuk memastikan semua 20 penyenaraian dipaparkan sekali tanpa ulangan. Walaupun pendekatan semasa menggunakan rand(0,19) menawarkan penyelesaian mudah, ia tidak menghalang paparan berulang.
Strategi yang lebih cekap ialah mengocok tatasusunan yang mengandungi nombor yang mewakili setiap penyenaraian. Ini boleh dicapai dengan fungsi shuffle() PHP. Tetapi untuk mempamerkan penyenaraian unik merentas berbilang penyegaran halaman, anda perlu menjejaki nombor yang telah digunakan.
Berikut ialah versi kod PHP anda yang dipertingkatkan:
<code class="php">// Generate an array of numbers without repeats $numbers = range(0, 19); shuffle($numbers); // Handle Yelp response data $response = json_decode($data); $business = $response->businesses; // Iterate through the numbers array foreach ($numbers as $i) { // Display the corresponding Yelp listing echo "<img border=0 src='" . $business[$i]->image_url . "'><br/>"; echo $business[$i]->name . "<br/>"; echo "<img border=0 src='" . $business[$i]->rating_img_url_large . "'><br/>"; }</code>
Dalam pendekatan ini, apabila halaman dimuat semula, tatasusunan $numbers adalah rawak sekali. Sambil atur cara berulang melalui tatasusunan, ia memaparkan setiap penyenaraian mengikut tertib, memastikan semua 20 penyenaraian ditunjukkan tanpa ulangan.
Anda juga boleh meneroka alternatif menggunakan randomGen() fungsi:
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); } // Generate 20 unique random numbers within the range of 0 to 20 $uniqueNumbers = randomGen(0, 20, 20);</code>
Fungsi ini menyediakan pendekatan yang lebih serba boleh untuk menjana nombor rawak unik dalam julat dan kuantiti yang ditentukan.
Atas ialah kandungan terperinci Cara Menjana Nombor Rawak Tanpa Pengulangan dalam PHP untuk penyenaraian halaman web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!