如何从PHP中的多维数组中取两个随机条目

时间:2014-11-07 05:08:45

标签: php arrays multidimensional-array

我正在寻找一种方法来获取多维数组并从顶层选择2个随机条目来创建一个新的多维数组。

例如,如果我有一个如下所示的数组$data

array (size=3)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[500]
          public 'id' => int 2
          public 'first_name' => string 'Mary' (length=4)
          public 'last_name' => string 'Sweet' (length=5)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[501]
          public 'id' => int 9
          public 'first_name' => string 'Joe' (length=3)
          public 'last_name' => string 'Bob' (length=3)
  2 => 
    array (size=1)
      0 => 
        object(stdClass)[502]
          public 'id' => int 1
          public 'first_name' => string 'Shag' (length=4)
          public 'last_name' => string 'Well' (length=4)

如何剪切它以便我从三个随机条目中选择两个,以获得类似$data2的内容:

array (size=2)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[500]
          public 'id' => int 2
          public 'first_name' => string 'Mary' (length=4)
          public 'last_name' => string 'Sweet' (length=5)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[502]
          public 'id' => int 1
          public 'first_name' => string 'Shag' (length=4)
          public 'last_name' => string 'Well' (length=4)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用array_rand()。根据你的工作,你可以变得更复杂,但这是基本的想法:

$randkeys = array_rand($data, 2);
$data2 = array($data[$randkeys[0]], $data[$randkeys[1]]);

See demo