Сгенерировать неповторяющиеся случайные числа PHP

Содержание
Сгенерировать одно случайное число
Три разных числа
Пример
Похожие статьи

Сгенерировать одно случайное число

Одно число можно сгенерировать с помощью функции random_int()

Синтаксис функции довольно прост:

random_int(НАЧАЛО, КОНЕЦ)

Будет сгенерировано число из диапазона между НАЧАЛО и КОНЕЦ

Например

random_int(0, 1)

Вернёт 0 или 1

Пример функции, в основе которой лежит random_int()

function my_random() { $rand = random_int(0, 2); if ($rand == 0) { $random_text = "Сгенерировано число Zero"; } else if ($rand == 1) { $random_text = "Сгенерировано число One"; } else { $random_text = "Сгенерировано число Two"; } return $random_text; } $text = my_random(); echo $text;

Пример работы этой функции вы можете увидеть обновив эту страницу в браузере несколько раз.

Сгенерировано число One

Сгенерировать три случайных числа

Допустим, нужно сгенерировать три неповторяющихся числа от 0 до 9.

Как сгенерировать одно число понятно из предыдущего параграфа.

Чтобы сгенерировать ещё три неповторяющихся числа нужно добавлять каждое уже сгенерированное в массив и потом заставлять 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

Чтобы получить их нужно выполнить ещё один цикл

for ($i = 0; $i < 9; $i++) { echo $existing[$i]; echo '<br>';

Результат работы такого генератора вы можете увидеть ниже - обновите страницу (F5 или CTRL + F5) чтобы повторить генерацию и убедиться, что повторов нет.

8
7
13
15
4
3
5
14
6

Похожие статьи
Программирование на PHP
Массивы в PHP
Циклы в PHP
Дата и время в PHP - основы
Как отобразить время различных часовых поясов PHP
Как вставить переменную в ссылку PHP
gettype(): определить тип переменной PHP
json_decode
Как получить ширину экрана с помощью PHP
Вызов функции из другого файла
Premature end of chunk coded message body: closing chunk expected
Сгенерировать неповторяющиеся случайные числа PHP
Узнать свой HTTP_USER_AGENT
Сравнить две даты
Классы в PHP 8
Комментарии в PHP
substr: обрезать строку
Запросы к REST API на PHP
$_SERVER['REQUEST_URI']: текущая url
Работа с базами данных
Работа с cookies
PHP sessions
Аутентификация и авторизация в PHP 8
switch, тернарный
try catch
Мои скрипты
PHP_errors.log Beget
Разбор ошибок

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: