Generieren von Zufallszahlen ohne Wiederholungen

Ich erstelle eine Website, auf der bei jeder Aktualisierung der Seite nach dem Zufallsprinzip ein Yelp-Listing angezeigt wird. Die Yelp-Such-API gibt 20 Einträge in einem Array zurück. Im Moment benutze ich die PHP-Funktion rand (0,19), um jedes Mal, wenn die Seite aktualisiert wird, eine zufällige Auflistung zu erstellen ($ enterprises [rand (0,19)]).

Kann mich jemand auf eine intelligentere Methode zum Randomisieren verweisen? Ich möchte alle 20 Einträge einmal anzeigen, bevor sie wiederholt werden. Was ist die bevorzugte Methode, um dieses Problem zu behandeln?

Die unten stehende Antwort funktioniert nicht, da die Nummern jedes Mal neu erstellt werden, wenn ich die Seite aktualisiere. Ich schätze, ich muss speichern, welche Nummern ich bereits verwendet habe?

$numbers = range(0, 19);

shuffle($numbers);
// Handle Yelp response data
$response = json_decode($data);
$RANDOM = rand(1,19);
$business = $response->businesses;

echo "<img border=0 src='".$business[$RANDOM]->image_url."'><br/>";
echo $business[$RANDOM]->name."<br/>";
echo "<img border=0 src='".$business[$RANDOM]->rating_img_url_large."'><br/>";

?>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage