我有数组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;
}
答案 0 :(得分:5)
你可以shuffle()
数组,然后array_slice()
来自它的一些元素:
shuffle($array);
$random_elements = array_slice($array, 0, 4); // with 4 the number of random values
答案 1 :(得分:0)
如果您希望使用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;
}
但我更喜欢宝贝的解决方案。
答案 2 :(得分:0)
$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;
}