我需要循环来返回从不相同的随机int

时间:2015-01-27 11:52:28

标签: php

for($x = 0; $x < $count; $x++){
    rand(0,$count);
}

如何使循环返回从0到$ count的随机INT,但每次循环时都不会返回相同的结果。

如果$ count为5,则会生成4,1,0,2,3。

3 个答案:

答案 0 :(得分:2)

我怀疑你并不是真的意思是“从不”,而是从不在你的循环范围内

$count = 5;
$values = range(0, $count-1);
shuffle($values);
foreach($values as $value) {
    echo $value, PHP_EOL;
}

答案 1 :(得分:0)

$count = 4;
$r     = range(0, $count-1);
shuffle($r);
print_r($r);

答案 2 :(得分:0)

我知道有更有效的解决方案。但是如果需要使用rand()那么试试这个。

<?php

$count = 5;
$arr = array();
for ($x = 0; $x < $count;) {
    $val = rand(0, $count);
    if (!in_array($val, $arr)) {
        $arr[] = $val;
        $x++;
    }
}

print_r($arr);
?>