Heim  >  Artikel  >  Backend-Entwicklung  >  Wie zeige ich Elemente nach dem Zufallsprinzip an, ohne sie in einer Liste zu wiederholen?

Wie zeige ich Elemente nach dem Zufallsprinzip an, ohne sie in einer Liste zu wiederholen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-21 12:44:30994Durchsuche

How to Randomly Display Elements without Repeating them in a List?

Eindeutige Zufallslisten ohne Wiederholungen generieren

Elemente ohne Wiederholung zufällig zu randomisieren ist ein häufiges Problem bei der Programmierung. Wie Sie festgestellt haben, reicht die Verwendung einer einfachen rand()-Funktion möglicherweise nicht für Ihr spezifisches Szenario aus, in dem Sie alle Elemente einmal anzeigen müssen, bevor Wiederholungen auftreten.

Die effektivste Methode für dieses Problem besteht darin, eine zu generieren Listen Sie alle möglichen Zahlen auf, mischen Sie sie, um die Reihenfolge zu erhöhen, und verwenden Sie diese Zahlen dann, um die gewünschten Einträge abzurufen. Hier ist eine optimierte Lösung:

<code class="php">$numbers = range(0, 19);
shuffle($numbers);</code>

Dieser Code erstellt ein Array mit den Zahlen von 0 bis 19 und mischt sie, um eine zufällige Reihenfolge zu erhalten. Anschließend können Sie das Zahlenarray durchlaufen und den entsprechenden Eintrag aus Ihrem $businesses-Array abrufen. Bei diesem Ansatz werden alle 20 Einträge einmal angezeigt, bevor sie wiederholt werden.

Eine Alternative ist die Verwendung einer benutzerdefinierten Funktion:

<code class="php">function randomGen($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}</code>

Diese Funktion benötigt drei Parameter: das Minimum und Maximalwerte und die gewünschte Menge an Zufallszahlen. Es generiert ein Array von Zufallszahlen innerhalb des angegebenen Bereichs und gibt die angegebene Anzahl von Elementen zurück.

In Ihrem Fall können Sie 20 eindeutige Zufallszahlen innerhalb des Bereichs der Yelp-Einträge generieren:

<code class="php">print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>

Um diese Techniken in Ihre Yelp-API-Antwort zu integrieren, können Sie das folgende Update implementieren:

  1. Generieren Sie eine zufällige Eintrags-ID mit einer der vorgeschlagenen Methoden und speichern Sie sie in Ihrer Datenbank.
  2. Generieren Sie bei jeder Seitenaktualisierung eine zufällige Eintrags-ID und prüfen Sie, ob sie mit dem Wert in Ihrer Datenbank übereinstimmt.
  3. Wenn die IDs nicht übereinstimmen, zeigen Sie den Eintrag an und fügen Sie die neue ID zu Ihrer Datenbank hinzu.
  4. Wiederholen Sie die Schritte 1–3, bis alle 20 Einträge angezeigt wurden.

Durch die Implementierung dieses Ansatzes stellen Sie sicher, dass alle 20 Einträge einmal angezeigt werden, bevor es zu Wiederholungen kommt, und erfüllen so Ihre gewünschte Funktionalität .

Das obige ist der detaillierte Inhalt vonWie zeige ich Elemente nach dem Zufallsprinzip an, ohne sie in einer Liste zu wiederholen?. 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