for($x = 0; $x < $count; $x++){
rand(0,$count);
}
루프 반환 무작위 INT를 0에서 $ count까지 만들 수 있지만 루프 할 때마다 결코 동일한 결과를 반환하지 않습니다.루프가 무작위 int를 반환하지 않아도됩니다.
$ count가 5 인 경우와 마찬가지로 4,1,0,2,3을 생성합니다.
for($x = 0; $x < $count; $x++){
rand(0,$count);
}
루프 반환 무작위 INT를 0에서 $ count까지 만들 수 있지만 루프 할 때마다 결코 동일한 결과를 반환하지 않습니다.루프가 무작위 int를 반환하지 않아도됩니다.
$ count가 5 인 경우와 마찬가지로 4,1,0,2,3을 생성합니다.
나는 당신이 정말로 "결코"을 의미하지 않는 생각,하지만 난 더 효율적인 솔루션가 알지 단순히 결코 루프
$count = 5;
$values = range(0, $count-1);
shuffle($values);
foreach($values as $value) {
echo $value, PHP_EOL;
}
$count = 4;
$r = range(0, $count-1);
shuffle($r);
print_r($r);
의 당신의 범위 내에서. 하지만 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);
?>
'$ count'는 어떤 값을 취할 수 있습니까? 항상 소수 일 경우 http://en.wikipedia.org/wiki/Linear_congruential_generator를 작성할 수 있습니다. –
0부터 $ count까지의 값을 가진 배열을 만들고 ('range' 사용) 그 배열을 섞은 다음 새 고유 한 임의 값이 필요할 때마다 해당 배열의 첫 번째 항목을'shift'하십시오. (배열에 실제로 항목이 들어 있기 때문에이 작업을 $ count + 1 번 이상 수행해야하는 경우 다시 새로운 배열로 프로세스를 시작해야합니다.) – CBroe