使用foreach和array_slice从PHP上的数组中获取随机值?

时间:2012-07-12 03:55:23

标签: php arrays foreach slice

如何将此代码的结果随机化?

我有一个包含四个以上项目的数组,但是我想只获得四个但不按顺序排列,我怎么想这样做?可以使用foreach(array_slice ??

完成
$i = 0;
foreach(array_slice($items_array,0,4) as $item) {
$output .= 'Item ID:'.$item['id'];
$i++;
}

我的阵列

a:6:{i:0;a:4:{s:5:"title";s:17:"Spedition";s:2:"id";s:11:"ZCXbgH1JDt4";s:3:"url";s:40:"embed/ZCXbgH1JDt4";s:5:"image";s:38:"transport";}i:1;a:4:{s:5:"title";s:77:"DC...... 

4 个答案:

答案 0 :(得分:3)

$output = array_rand($items_array, 4);

array_rand()

答案 1 :(得分:0)

解决

$item = array_rand($items_array, 4); //get only four at random
$i=0;
while($i<=3) { // instead of 4 you set it at 3 because the counter starts at 0
$output = 'Item ID:'.$items_array[$item[$i]]['id'];             
$i++;
}

答案 2 :(得分:-1)

更好,更简单的解决方案是使用array_rand

$array          =  array("foo", "bar", "hallo", "world");
$rand_keys  =  array_rand($array,1);
echo $array[$rand_keys];

答案 3 :(得分:-1)

这应该为你做。

$i = 0;
foreach(array_rand($items_array, 4) as $item) {
  $output .= 'Item ID:'.$item['id'];
  $i++;
}