我在数组中有6个值,我需要从一个数组中返回4个随机值,但不应该都相等。
示例:
如果我有一个数组(6个值)1, 2, 3, 4, 5, 6
,我需要从中获得4个随机值,例如3, 1, 4, 2
。目前它返回例如:2,2,3,2
这是代码:
$array= array(1, 2, 3, 4, 5, 6);
for ($i = 0; $i < 4; $i++) {
$k = array_rand($array);
$random_element = $array[$k];
echo $random_element;
}
您可以shuffle()
数组,然后array_slice()
其中的一些元素:
shuffle($array);
$random_elements = array_slice($array, 0, 4); // with 4 the number of random values
如果您想保留echo
的旧功能,只需在循环中插入一个unset
$array= array(1, 2, 3, 4, 5, 6);
for ($i = 0; $i < 4; $i++) {
$k = array_rand($array);
$random_element = $array[$k];
unset($array[$k]);
echo $random_element;
}
但我更喜欢bwoebi的解决方案。
$array= array(1, 2, 3, 4, 5, 6);
for ($i = 0; $i < 4; $i++) {
$k = array_rand($array);
$random_element = $array[$k];
unset($array[$k]);
echo $random_element;
}
- 从数组中获取随机值
- 从数组中移除元素,这样在下一次迭代中我们就不会得到重复的元素