array_rand 在 PHP 中未按预期工作
array_rand not working as expected in PHP
我刚刚开始使用它进行训练,所以我一直在玩 PHP。我遇到了 array_rand 函数 returns 随机索引,你可以控制你想要的随机索引数量。但是如果随机索引的数量保持等于数组的实际长度呢?我试了一下,结果出人意料。
<?php
$arr = array(1,2,3,4,5,6);
$temp = array_rand($arr,6);
foreach($temp as $r){
echo $arr[$r]." ";
}
?>
因此,我将所有索引随机化并再次打印相同的数组,但顺序为 array_rand returns。请注意,我并不是在为这段代码寻找替代方案,因为我只是在练习。我想知道的是为什么随机函数 returns Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) [如果你打印 array_rand 结果]?为什么在这种情况下它不是随机的?
array_rand
是从给定的数组中随机选取一些索引。例如,它可能会给您 1、3、4 个索引或 3、5、6 个索引。但不是 5,2,4(至少函数的目的不是那样)。
如果你想随机化数组的索引,你必须使用 shuffle
在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]." ";
}
?>
因为和以前一样。答案解释了平均值。
我刚刚开始使用它进行训练,所以我一直在玩 PHP。我遇到了 array_rand 函数 returns 随机索引,你可以控制你想要的随机索引数量。但是如果随机索引的数量保持等于数组的实际长度呢?我试了一下,结果出人意料。
<?php
$arr = array(1,2,3,4,5,6);
$temp = array_rand($arr,6);
foreach($temp as $r){
echo $arr[$r]." ";
}
?>
因此,我将所有索引随机化并再次打印相同的数组,但顺序为 array_rand returns。请注意,我并不是在为这段代码寻找替代方案,因为我只是在练习。我想知道的是为什么随机函数 returns Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) [如果你打印 array_rand 结果]?为什么在这种情况下它不是随机的?
array_rand
是从给定的数组中随机选取一些索引。例如,它可能会给您 1、3、4 个索引或 3、5、6 个索引。但不是 5,2,4(至少函数的目的不是那样)。
如果你想随机化数组的索引,你必须使用 shuffle
在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]." ";
}
?>
因为和以前一样。答案解释了平均值。