PHP. Получить 20 уникальных, не повторяющихся значений

Получить n количество уникальных, не повторяющихся значений и запись в массив.
PHP. Получить 20 уникальных, не повторяющихся значений


Для достижения цели воспользуемся циклом while.
Переменная $count будет хранить выполненное количество итераций.
$count = 0;

Создадим результирующий массив, в который в дальнейшем будет производиться запить созданных значений.
$resultArray = [];

При каждой итерации будет сгенерировано произвольное число.
$rand = rand();

Ни смотря на то, что число произвольное, ни кто не гарантирует, что оно не могло повториться ранее.
По этому при каждой итерации, внутри цикла необходима проверка на существование нового числа в массиве.
Для этого нам потребуется функция in_array, в которую первым параметром передается значение, которое мы будем искать в массиве, вторым параметром передается сам массив по которому будет производиться поиск.
И если значение не найдено в массиве, то оно будет удовлетворять условию и будет записано в результируюий массив.
if (!in_array($rand, $resultArray)) {

Таким образом У нас получается цикл, который будет повторен 20 раз.
На каждой итерации будет сгенерировано произвольное значение и записано в переменную $rand.
Далее с помощью функции in_array будет производиться поиск в результирующем массиве.
И если нового значений не будет обнаружено, то произвольно сгенерированное число будет записано в результирующий массив:
$resultArray[] = $rand;

И в счетчик будет записано значение +1;
$count++;


Таким образом цикл будет повторяться, пока переменная $ccount не достигнет отметки 20.
Хочу сказать, что 20 это число приведенное для данной статьи. Вы в свою очередь можете задать совершенно любое значение, которое вам потребуется.
(От этого зависит количество сгенерированных значений в результирующем массиве)

После выполнения цикла массив будет содержать 20, произвольных, уникальных, не повторяющихся, сгенерированных значения.
$resultArray


Пример кода:
<?php
$count = 0;
$resultArray = [];

while ($count < 20) {
    $rand = rand();
    if (!in_array($rand, $resultArray)) {
        $resultArray[] = $rand;
        $count++;
    }
}

var_dump($resultArray);


Результат:
array(20) {
  [0]=>
  int(1449204470)
  [1]=>
  int(332461299)
  [2]=>
  int(204147641)
  [3]=>
  int(1802503248)
  [4]=>
  int(1432769999)
  [5]=>
  int(26986478)
  [6]=>
  int(1999132883)
  [7]=>
  int(1132471797)
  [8]=>
  int(744921555)
  [9]=>
  int(437875722)
  [10]=>
  int(1994734701)
  [11]=>
  int(1720130100)
  [12]=>
  int(1077114615)
  [13]=>
  int(285350088)
  [14]=>
  int(1382348075)
  [15]=>
  int(1412562980)
  [16]=>
  int(208278908)
  [17]=>
  int(1079845401)
  [18]=>
  int(736728636)
  [19]=>
  int(1992854708)
}
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика
  • Счетчик PR-CY.Rank
  • Рейтинг@Mail.ru