首頁  >  文章  >  後端開發  >  如何在 PHP 中產生不重複的隨機數用於網頁列表

如何在 PHP 中產生不重複的隨機數用於網頁列表

Linda Hamilton
Linda Hamilton原創
2024-10-21 11:55:02232瀏覽

How to Generate Random Numbers Without Repetition in PHP for webpage listing

產生不重複的隨機數

當您建立一個使用隨機選擇在每次頁面刷新時顯示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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn