从数组生成随机值集

时间:2013-02-20 10:19:05

标签: php

我希望获得静态长度以从数组中获取任何随机值。

PHP代码:

在下面的代码中如何从数组中获取5个随机值?

$arr_history = array(23, 44,24,1,345,24,345,34,4,35,325,34,45,6457,57,12);
$lenght=5;
for ( $i = 1; $i < $lenght; $i++ )
     echo array_rand($arr_history);

2 个答案:

答案 0 :(得分:2)

您可以使用array_rand()选择5个随机密钥,然后使用它们与数组密钥交叉;这样可以保持原始数组的完整性。

$values = array_intersect_key($arr_history, array_flip(array_rand($arr_history, 5)));

Demo

或者,您可以先将阵列原位洗牌,然后取出第一个或最后5个条目:

shuffle($arr_history);
$values = array_slice($arr_history, -5);

这样做的好处是可以连续拍摄多个套装而不会重叠。

答案 1 :(得分:0)

试试这个:

$rand_value = array_rand($arr_history);

echo $rand_value;

参考:http://php.net/manual/en/function.array-rand.php

或使用:

shuffle($arr_history)

这会改变数组的顺序:http://php.net/manual/en/function.shuffle.php