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