为什么php rand()函数给空时间?

时间:2015-02-23 09:32:15

标签: php arrays random

Hello当我尝试使用rand()函数时,它的某些时候是空的,如

// I want random value between 0-5000 , want 500 random value
 for ($i=0; $i < 500; $i++) { 
    $randNo = rand(0, 5000);

    if (in_array($randNo, $randArray)) {
        $randNo = InfiniteLoop($randArray ,$length_sec);
    }
    array_push($randArray,$randNo);
}
sort($randArray);

之后我打印该数组给出一些空值。

//output
Array ( [0] =>  [1] => 523 [2] => 824 [3] ....so on )

3 个答案:

答案 0 :(得分:2)

如果你想要0到5000之间的500个不同的随机数,那么你应该使用shuffle()array_slice()

$allNumbers = range(0, 5000);

shuffle($allNumbers);

$randomNumbers = array_slice($allNumbers, 0, 500);

答案 1 :(得分:0)

问题可能在于您的“InfiniteLoop&#39;函数,它覆盖了rand()

的结果

答案 2 :(得分:0)

使用:

$allNumbers = [];

for ($i = 0; $i < 5000; $i++) {
    $allNumbers[] = $i;
}

uniqid($allNumbers);