2013-02-20 98 views
1

我想获得静态长度以获取数组中的任意值。从数组中生成随机值的集合

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); 
+0

随机并切片或传递'5'作为'array_rand'的第二个参数。 http://php.net/manual/en/function.array-rand.php。 – 2013-02-20 10:19:56

+1

'shuffle($ array); array_slice($ array,0,5); //执行Felix Kling的注释';) – Leri 2013-02-20 10:22:36

+0

@FelixKling传递5作为array_rand()的第二个参数返回一组键,而不是值:) – 2013-02-20 10:26:37

回答

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); 

这样做的好处是可以接受多个连续出现,没有重叠。

+0

这就是在每个刷新页面返回静态值 – 2013-02-20 10:31:52

+0

@TuxWorld愚蠢的错误:)更新。 – 2013-02-20 10:36:17