Вернуться на предыдущую страницу

Иногда может понадобится функция, которая генерирует псевдо-случайные числа. Но таким образом, чтобы эти числа не повторялись и отдавались в виде массива. Для PHP 7+.

function getRand($num=1, $max=2){
$rand=[];
if($num>1){
while(count($rand)<$num){
$randNum=random_int(0,$max);
//$rand=array_unique($rand);
if(in_array($randNum,$rand)){
$rand[]=random_int(0,$max);
}else{
$rand[]=$randNum;
}
}
}else{
$rand[]=random_int(0,$max);
}
return $rand;
}

Использовать так:

$numbersAr=getRand(20,$max);

В данном примере  генерирую 20 уникальных чисел:

array(20) {
[0]=>
int(6)
[1]=>
int(14)
[2]=>
int(15)
[3]=>
int(21)
[4]=>
int(22)
[5]=>
int(26)
[6]=>
int(27)
[7]=>
int(29)
[8]=>
int(30)
[9]=>
int(37)
[10]=>
int(38)
[11]=>
int(46)
[12]=>
int(49)
[13]=>
int(57)
[14]=>
int(58)
[15]=>
int(59)
[16]=>
int(61)
[17]=>
int(63)
[18]=>
int(74)
[19]=>
int(77)
}