当前位置:Gxlcms > PHP教程 > 指定范围内多个不重复随机数

指定范围内多个不重复随机数

时间:2021-07-01 10:21:17 帮助过:25人阅读

求一个指定范围内多个不重复随机数~
例如500以内6个不重复数
又快又省最好了
谢谢高手了!
------解决思路----------------------


function unique_random(& $result, $size=6, $min=0, $max=500){
$num = mt_rand($min, $max);
!in_array($num, $result) && array_push($result, $num);

return count($result) >= $size ? $result : unique_random($result, $size, $min, $max);
}
$result = array();
unique_random($result);
print_r($result);




Array
(
[0] => 132
[1] => 351
[2] => 43
[3] => 425
[4] => 449
[5] => 269
)

------解决思路----------------------
500个这么小的pool,完全可以用空间换时间。

$arr = array();
for($i=1;$i<=500; $i++){
array_push($arr, $i);
}

shuffle($arr);
$ret = array_slice($arr, 0, 6);
print_r($ret);

人气教程排行