2014-11-07 3 views
1

Я ищу способ взять многомерный массив и выбрать 2 случайных элемента с верхнего уровня для создания нового многомерного массива.Как взять две случайные записи из многомерного массива в PHP

Например, если у меня есть массив $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) 

Заранее благодарю вас за помощь.

ответ

3

Использование array_rand(). Вы можете получить более сложные зависимости от того, что вы делаете, но вот основная идея:

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

See demo

Смежные вопросы