Часто бывает нужно сгенерировать определенное количество уникальных чисел в заданном интервале.
Это можно сделать так:
// стартовая конфигурация: $from = 1; // минимальное число интервала $to = 100; // максимальное число интервала $num = 5; // количество чисел в результирующем наборе $res = array(); // массив для хранения результирующего набора // запускаем "бесконечный" цикл, в условии присваиваем случайное число while($i = rand($from, $to)) { // если числа еще нет в результирующем массиве, то добавляем его туда if (! in_array($i, $res) ) $res[] = $i; // если в массиве достаточно чисел, то прерываем цикл if (count($res) == $num) break; } // смотрим что получилось в массиве var_dump($res);
А как бы вы сделали лучше/быстрее/оптимальнее?
Оставить комментарий