Генерация уникальных случайных чисел

В предыдущем рецепте был описан процесс генерации случайных чисел. Но бывает необходимо получить несколько случайных чисел. И не просто несколько чисел, а таким образом, чтобы все они были различными. Для реализации такого рецепта, в php нет готовых решений, поэтому необходимо сделать это самим. В основе реализации будут лежать все те же функции php, которые генерируют случайное число, только после каждой генерации необходимо выполнять проверку, существует такое число в списке или нет. Если такое число уже сгенерировано, то необходимо повторить генерацию.

Пример:
// хранилище для чисел 
$outArray = array();  
// максимальное число 
$max = 10;  
// минимальное число 
$min = 0;  
// необходимое количество чисел 
$count = 10;  
// счетчик полученных чисел 
$i = 0;  
// цикл, который будет выполняться, 
// пока не будут получены все уникальные числа 
26 
 
while($i<$count){ 
  // генерируем случайное число 
    $chislo = mt_rand($min, $max);  
  // проверяем уникальность числа 
    if(!in_array($chislo, $outArray)){  
    // если уникальное, то записываем его в массив 
        $outArray[$i] = $chislo;  
        $i++; 
    } 
} 
 
// вывод результата 
var_dump($outArray); 


В примере была использована ранее не описанная функция in_array, она позволяет осуществлять проверку наличия элемента в массиве.
Теги:
in_array
Добавлено: 30 Марта 2018 20:21:55 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...