Book HomePHP CookbookSearch this book

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.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.