PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 2
ilya2231 Отправлено: 12 Июня, 2016 - 14:13:33 • Тема: Генерация уникальных чисел • Форум: Вопросы новичков

Ответов: 4
Просмотров: 318
Bio man пишет:
Самый простой способ получить уникальное число http://php.net/manual/ru/function.microtime.php

Не понятно что требуется

Сейчас генерируются числа с помощью mt_rand, но они не уникальны. Вот мне хотелось бы сделать проверки уникальности числа. Если число неуникально, то пегенерировать его
ilya2231 Отправлено: 12 Июня, 2016 - 00:44:33 • Тема: Генерация уникальных чисел • Форум: Вопросы новичков

Ответов: 4
Просмотров: 318
Добрый день! Я только начинаю постигать php. Запутался сейчас с таким моментом: создал генератор числе с помощью функции mt_rand. Проблема в том, что не знаю, как сделать проверку уникальности сгенерированных чисел, отсеить повторяющиеся и сгенерировать по новой недостающее количество. Помогите пожалуйста решить задачу. Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $even = $_POST['even'];
  4. $odd = $_POST['odd'];
  5. $number = $_POST['pir'];
  6. $start2 = $_POST['start2'];
  7. $end2 = $_POST['end2'];
  8. function clean($value = "") {
  9.     $value = trim($value); //для удаления пробелов из начала и конца строки
  10.     $value = stripslashes($value); //для удаления экранированных символов ("Ваc зовут O\'reilly?" => "Вас зовут O'reilly?")
  11.     $value = strip_tags($value); //для удаления HTML и PHP тегов
  12.     $value = htmlspecialchars($value); //преобразует специальные символы в HTML-сущности ('&' преобразуется в '&' и т.д.)
  13.    
  14.     return $value;
  15. }
  16. $number = clean($number);
  17. $start2 = clean($start2);
  18. $end2 = clean($end2);
  19. for ($i=1; $i<=$number; $i++){
  20. if ($number>300) {
  21.     echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">Максимальное количество сгенерированных чисел не может больше 100</span>';
  22. exit();
  23. }
  24. elseif ($end2 <= $start2) {
  25.     echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">Введите второе число диапазона большее, чем первое.</span>';
  26.     exit();
  27. }
  28.  
  29. $num1 = mt_rand($start2, $end2);
  30.  
  31. if (isset($even) or isset($odd)) {
  32. if (isset($even)) {
  33. if ($num1 % 2 == 0) {
  34.      echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">'.$num1.'</span>';    
  35. }
  36. else {
  37.     $numeven = $num1 +1;    
  38.     echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">'.$numeven.'</span>';    
  39. }    
  40. }
  41. elseif (isset($odd)) {
  42. if ($num1 % 2 !== 0) {
  43.      echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">'.$num1.'</span>';
  44. }
  45. else {
  46.     $numodd = $num1 - 1;    
  47.     echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">'.$numodd.'</span>';
  48. }    
  49. }  
  50. }
  51.     else {
  52.         echo '<span style="display:inline-block; margin-left:20px; margin-bottom:20px;">'.$num1.'</span>';
  53. }
  54. }
  55. ?>
  56.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB