PHP array_rand 有没有思路限制每个值仅输出一次

$a = array(1,2,3,4,5,6,7,8,9);
$b = array_rand($a,1);
for($i=0;$i<count($a);$i++){
echo $b;//这里保证每个$b不重复应该怎么解决呢,求指教
}

我不主张沿着array_rand的思路做下去。
这命题从更高级的层面看,需求是随机依次输出整个数组。
把数组随机洗牌后依次输出最简洁。
<?php
$a = array(1,2,3,4,5,6,7,8,9);
shuffle($a);
foreach($a as $i){
echo $i.' ';
}
=========
6 8 2 5 3 4 7 1 9
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-19
定议一个array
用一个循环把array里的值跟 $b 比较, 如果相同则跳去下一循环, 不同的放进array里和 echo $b
第2个回答  2011-10-20
<?php
$a = array(1,2,3,4,5,6,7,8,9);
$b = array();
for($i=0; $i<count($a); $i++){
$_b = array_rand($a, 1);
if(in_array($_b, $b)){
$i--; // 如果想取出$a中所有的元素,加上这一行代码
continue;
}
$b[] = $_b;
}
print_r($b);
?>
相似回答