21.11 Alle Zeilen einer Datei in eine Zufallsreihenfolge bringen

Problem

Sie wollen per Zufall alle Zeilen einer Datei in eine neue Reihenfolge bringen. Zum Beispiel möchten Sie in einer Datei mit lustigen Zitaten eines per Zufall auswählen.

Lösung

Lesen Sie alle Zeilen der Datei mit file() in ein Array ein und mischen Sie dann die Elemente des Arrays:

$lines = file('quotes-of-the-day.txt');
$lines = pc_array_shuffle($lines);

Diskussion

Die Funktion pc_array_shuffle() aus „4.20 Ein Array in eine zufällige Reihenfolge bringen“ ist zu einem höheren Grad zufällig als die eingebaute PHP-Funktion shuffle(), da sie nach Fisher-Yates mischt, was die Elemente gleichmäßig im Array verteilt.

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.