Рандомизация всех строк в файле

Задача
Необходимо выполнить случайную перестановку всех строк в файле.

Например, есть файл забавных цитат, и вы хотите выбрать из них случайную.

Решение
Прочитайте все строки файла в массив с помощью функции file(), а затем перетасуйте элементы массива:

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

Обсуждение
Функция pc_array_shuffle() из рецепта 4.20 дает более случайный результат, чем встроенная в PHP функция shuffle(), поскольку она основана на алгоритме перемешивания Фишера-Йетса (Fisher-Yates), равномерно распределяющем элементы внутри массива.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Блокировка файла
Выбор случайной строки из файла
Запись в несколько файловых дескрипторов одновременно
Запись в стандартный поток вывода
Непосредственная модификация файла без временной копии

Вернуться в раздел: PHP / 18. Файлы