Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Генерация уникальных чисел
Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2016
Помог: 0 раз(а)
Добрый день! Я только начинаю постигать php. Запутался сейчас с таким моментом: создал генератор числе с помощью функции mt_rand. Проблема в том, что не знаю, как сделать проверку уникальности сгенерированных чисел, отсеить повторяющиеся и сгенерировать по новой недостающее количество. Помогите пожалуйста решить задачу. Вот код:
$value=strip_tags($value);//для удаления HTML и PHP тегов
$value=htmlspecialchars($value);//преобразует специальные символы в HTML-сущности ('&' преобразуется в '&' и т.д.)
return$value;
}
$number= clean($number);
$start2= clean($start2);
$end2= clean($end2);
for($i=1;$i<=$number;$i++){
if($number>300){
echo'<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">Максимальное количество сгенерированных чисел не может больше 100</span>';
Сейчас генерируются числа с помощью mt_rand, но они не уникальны. Вот мне хотелось бы сделать проверки уникальности числа. Если число неуникально, то пегенерировать его
kuller
Отправлено: 12 Июня, 2016 - 17:59:36
Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Помог: 2 раз(а)
[quote=ilya2231][/quote] для уникальности надо проверять не было ли оно раньше сгенерировано. Для этого числа сгенерированные надо писать в базу, и сверять их на уникальность. Советую заранее заготовить список чисел, и их выдавать просто.
Строитель
Отправлено: 12 Июня, 2016 - 20:33:00
Участник
Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 74 раз(а)
ilya2231 пишет:
Вот мне хотелось бы сделать проверки уникальности числа. Если число неуникально, то перегенерировать его
В таких случаях, я думаю, правильнее было бы собрать все значения в массив, а потом случайным образом их выбирать из массива, при этом те значения, которые были выбраны, удалять из массива. При таком подходе вы получите рандомный выбор без повторений.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.