当前位置: 代码迷 >> PHP >> 指定范围内多个不重复随机数
  详细解决方案

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

热度:92   发布时间:2016-04-28 17:40:00.0
求一个指定范围内多个不重复随机数~
例如500以内6个不重复数
又快又省最好了
谢谢高手了!
------解决思路----------------------

<?php 

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);
  相关解决方案