PHP. Получить 20 уникальных, неповторяющихся значений
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Получить n количество уникальных, неповторяющихся значений и запись в массив.
Для достижения цели воспользуемся циклом while.
Переменная $count будет хранить выполненное количество итераций.
Создадим результирующий массив, в который в дальнейшем будет производиться запить созданных значений.
При каждой итерации будет сгенерировано произвольное число.
Ни смотря на то, что число произвольное, ни кто не гарантирует, что оно не могло повториться ранее.
По этому при каждой итерации, внутри цикла необходима проверка на существование нового числа в массиве.
Для этого нам потребуется функция in_array, в которую первым параметром передается значение, которое мы будем искать в массиве, вторым параметром передается сам массив по которому будет производиться поиск.
И если значение не найдено в массиве, то оно будет удовлетворять условию и будет записано в результируюий массив.
Таким образом У нас получается цикл, который будет повторен 20 раз.
На каждой итерации будет сгенерировано произвольное значение и записано в переменную $rand.
Далее с помощью функции in_array будет производиться поиск в результирующем массиве.
И если нового значений не будет обнаружено, то произвольно сгенерированное число будет записано в результирующий массив:
И в счетчик будет записано значение +1;
Таким образом цикл будет повторяться, пока переменная $ccount не достигнет отметки 20.
Хочу сказать, что 20 это число приведенное для данной статьи. Вы в свою очередь можете задать совершенно любое значение, которое вам потребуется.
(От этого зависит количество сгенерированных значений в результирующем массиве)
После выполнения цикла массив будет содержать 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)
}
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.