Heim >Backend-Entwicklung >PHP-Tutorial >So generieren Sie Zufallszahlen ohne Wiederholung in PHP für die Auflistung von Webseiten

So generieren Sie Zufallszahlen ohne Wiederholung in PHP für die Auflistung von Webseiten

Linda Hamilton
Linda HamiltonOriginal
2024-10-21 11:55:02337Durchsuche

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

Zufallszahlen ohne Wiederholung generieren

Wenn Sie eine Website erstellen, die eine Zufallsauswahl verwendet, um bei jeder Seitenaktualisierung einen Yelp-Eintrag anzuzeigen, stehen Sie vor der Herausforderung, sicherzustellen, dass alles funktioniert 20 Einträge werden einmalig ohne Wiederholung angezeigt. Während der aktuelle Ansatz mit rand(0,19) eine einfache Lösung bietet, verhindert er nicht wiederholte Anzeigen.

Eine intelligentere Randomisierungsmethode

Eine effizientere Strategie besteht darin, ein Array zu mischen, das Folgendes enthält Zahlen, die jede Auflistung repräsentieren. Dies kann mit der shuffle()-Funktion von PHP erreicht werden. Um jedoch eindeutige Einträge über mehrere Seitenaktualisierungen hinweg anzuzeigen, müssen Sie die bereits verwendeten Zahlen verfolgen.

Implementierung und Beispiel

Hier ist eine verbesserte Version Ihres PHP-Codes:

<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>

Bei diesem Ansatz wird das $numbers-Array beim Aktualisieren einer Seite einmal randomisiert. Während das Programm das Array durchläuft, zeigt es jeden Eintrag der Reihe nach an und stellt so sicher, dass alle 20 Einträge ohne Wiederholung angezeigt werden.

Zusätzliche Überlegungen

Sie können auch eine Alternative mithilfe von randomGen() erkunden. Funktion:

<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>

Diese Funktion bietet einen vielseitigeren Ansatz zum Generieren eindeutiger Zufallszahlen innerhalb eines bestimmten Bereichs und einer bestimmten Menge.

Das obige ist der detaillierte Inhalt vonSo generieren Sie Zufallszahlen ohne Wiederholung in PHP für die Auflistung von Webseiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn