ホームページ  >  記事  >  バックエンド開発  >  PHP で Web ページのリスト用に反復せずに乱数を生成する方法

PHP で Web ページのリスト用に反復せずに乱数を生成する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-21 11:55:02229ブラウズ

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

繰り返しを行わずに乱数を生成する

ページを更新するたびにランダムな選択を使用して Yelp リストを表示する Web サイトを構築すると、すべての値が確実に表示されるようにするという課題に直面します。 20 件のリストが繰り返し表示されずに 1 回表示されます。 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 配列が 1 回ランダム化されます。プログラムは配列を反復処理する際に、各リストを順番に表示し、20 個のリストすべてが繰り返し表示されないようにします。

その他の考慮事項

randomGen() を使用して代替案を検討することもできます。 function:

<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 で Web ページのリスト用に反復せずに乱数を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。