我猜通过将它添加到 Test2 的 4 倍以上,它应该显示 4 倍以上
这种方法看起来是正确的。让我们测试一下:
$input = array("Test1", "Test1", "Test1", "Test1", "Test2");
for ($i=0; $i < 100000; $i++) {
$rand_key = array_rand($input, 1);
$result[] = $input[$rand_key];
}
$values = array_count_values($result);
print_r($values);
我得到的输出是:
Array
(
[Test1] => 80123
[Test2] => 19877
)
是4.03094028274次!
尽管在您的示例中,您总是回显$input
数组中的第一个元素,因此它根本不是随机的。您需要改为访问$random_keys
索引:
$rand_key = array_rand($input, 1);
echo $input[$rand_key];
请注意,我已经更改了array_rand()
语句,因此它一次只接收一个值。
这也可以使用shuffle()
:
$rand_key = shuffle($input);
echo $input[0];