PHP。从数组中返回随机值,但不等于

时间:2014-09-25 11:39:37

标签: php arrays sorting random equals

我有数组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;
}

3 个答案:

答案 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;
}
  1. 从数组中获取随机值
  2. 从数组中删除元素,以便在下一次迭代中我们不会重复元素