我正在玩PHP,因为我刚开始接受培训。我遇到了返回随机索引的array_rand函数,您可以控制所需的随机索引数。但是,如果随机索引的数量保持等于数组的实际长度怎么办?我试过了,结果令人惊讶。
<?php
$arr = array(1,2,3,4,5,6);
$temp = array_rand($arr,6);
foreach($temp as $r){
echo $arr[$r]." ";
}
?>
因此,我将所有索引随机化并再次打印相同的数组,但是按照array_rand的顺序返回。请注意,我没有为这段代码寻找替代方案,因为我只是在练习。我想知道的是随机函数返回Array的原因([0] =&gt; 0 [1] =&gt; 1 [2] =&gt; 2 [3] =&gt; 3 [4] =&gt; 4 [5 ] =&gt; 5)[如果你打印array_rand结果]?为什么在这种情况下它不是随机的?
答案 0 :(得分:3)
array_rand
是从给定数组中选择一些随机索引。例如,它可以为您提供1,3,4个索引或3,5,6个索引。但不是5,2,4(至少功能的目的不是那样)。
如果要为数组随机化索引,则必须使用shuffle
答案 1 :(得分:0)
在arry_rand,shuffle()之后再添加一个步骤;所以你的代码将是:
<?php
$arr = array(1,2,3,4,5,6);
$temp = array_rand($arr,6);
shuffle($temp);
foreach($temp as $r){
echo $arr[$r]." ";
}
?>
因为预先。答案解释了这个意思。