Сгенерировать неповторяющиеся случайные числа PHP
Допустим, нужно сгенерировать три неповторяющихся числа от 0 до 9
Одно число можно сгенерировать с помощью
random_int(0,9)
To сгенерировать ещё три неповторяющихся числа нужно добавлять каждое
уже сгенерированное в массив и потом заставлять random_int работать пока
не получится число не из массива
<?php
$existing_array = []
while( (in_array( $new_number1 = random_int(0,9)), $existing_array ) );
array_push($existing_array, $new_number);
while( (in_array( $new_number2 = random_int(0,9)), $existing_array ) );
array_push($existing_array, $new_number);
while( (in_array( $new_number3 = random_int(0,9)), $existing_array ) );
array_push($existing_array, $new_number);
В результате получится три переменные $new_number1, $new_number2 , $new_number3, со значениями от 0 до 9 без повторов.
Если нужно сгенерировать большое количество случайных чисел нужно воспользоваться циклом for
Допустим, нужно десять случайных чисел от 0 до 20 без повторов.
<?php
$existing = []
for ($i = 0; $i < 9; $i++) {
while( (in_array( $number = random_int(0,20)), $existing ) );
array_push($existing_array, $new_number);
}
?>
Все эти числа хранятся в массиве $existing
To получить их нужно выполнить ещё один цикл
for ($i = 0; $i < 9; $i++) {
echo $existing[$i];
echo '<br>';
Результат работы такого генератора вы можете увидеть ниже - обновите страницу (F5 или CTRL + F5) чтобы повторить генерацию и убедиться, что повторов нет.
19
4
0
15
16
1
12
8
10
Блокировка PHP сессий | |
Установка PHP-фреймворков | |
Установка Yii | |
Установка Symfony | |
Установка Laravel | |
Профилирование сайтов на PHP | |
XDebug - дебаг и профилирование кода php (profiling) |