Recipe 18.12 Randomizing All Lines in a File
18.12.1 Problem
You want to randomly reorder all lines in
a file. You have a file of funny quotes, for example, and you want to
pick out one at random.
18.12.2 Solution
Read all the lines in the file into an array with file(
)
, and then shuffle the
elements of the array:
$lines = file('quotes-of-the-day.txt');
$lines = pc_array_shuffle($lines);
18.12.3 Discussion
The pc_array_shuffle(
) function from Section 4.21 is more random than PHP's
built-in shuffle( ) function, because it uses the
Fisher-Yates shuffle, which equally
distributes the elements throughout the array.
18.12.4 See Also
Section 4.20 for pc_array_shuffle(
); documentation on shuffle( ) at
http://www.php.net/shuffle.
|