當您建立一個使用隨機選擇在每次頁面刷新時顯示Yelp 列表的網站時,您會遇到確保所有20個清單顯示一次,不重複。雖然目前使用 rand(0,19) 的方法提供了一個簡單的解決方案,但它並不能防止重複顯示。
更有效的策略是對包含代表每個清單的數字。這可以透過 PHP 的 shuffle() 函數來實現。但要在多個頁面刷新中展示唯一的列表,您需要追蹤已使用的數字。
這是PHP 程式碼的改進版本:
<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>
在這個方法中,當刷新頁面時,$numbers 陣列會隨機化一次。當程式迭代數組時,它會按順序顯示每個列表,確保所有 20 個列表都顯示而不重複。
您也可以使用randomGen() 來探索替代方案函數:
<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>
此函數提供了一種更通用的方法來產生指定範圍和數量內的唯一隨機數。
以上是如何在 PHP 中產生不重複的隨機數用於網頁列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!