2010-01-30 4 views
0

У меня есть следующий массив из БД.Как получить пользователя из многоуровневого массива?

Теперь я хочу получить голень в [user] => shin.

Как я могу получить его с помощью PHP?

Номер в [29] => Array может быть любым числом.

Заранее спасибо.

Array 
(
    [29] => Array 
     (
      [0] => stdClass Object 
       (
        [day] => 29 
        [eventContent] => school ski tada 
        [eventTitle] => school ski 
        [id] => 24 
        [user] => shin 
        [user_id] => 1 
       ) 

      [1] => stdClass Object 
       (
        [day] => 29 
        [eventContent] => north again 
        [eventTitle] => ski hello 
        [id] => 26 
        [user] => shin 
        [user_id] => 1 
       ) 

     ) 

    [31] => Array 
     (
      [0] => stdClass Object 
       (
        [day] => 31 
        [eventContent] => test 
        [eventTitle] => test 
        [id] => 21 
        [user] => shin 
        [user_id] => 1 
       ) 

     ) 
... 
... 

) 

ответ

1

Я не уверен, что представляют собой индексы массива, но я оставлю их только в случае, если они полезны для вас. Ответ в основном такое же, как Аликс с проверкой, чтобы убедиться, что вы на самом деле имеете вложенную массив:

foreach ($array as $day => $events) { 
    if (is_array($events)) { 
     foreach ($events as $event) { 
      echo $day;   // outputs 29 (same as $event->day) 
      echo $event->user; // outputs shin 
      echo $event->eventContent; 
      echo $event->eventTitle; 
      echo $event->id; 
      // etc, etc, etc. 
     } 
    } 
} 

Обратите внимание на разнице между внешним контуром Еогеаспа и внутренним контуром. Внешняя извлекает как ключ массива , так и, тогда как внутренний цикл возвращает значение массива.

+0

foreach выводит одинаковое количество пользователей. Как я могу выводить только один. Я хочу повторить «Это календарь Шин». Если есть три события, он будет выводиться три раза. – shin

+0

Вы можете «ломать» (http://php.net/break) после первого или вместо этого использовать 'current'. –

0
foreach ($yourArray as $value) 
{ 
    foreach ($value as $object) 
    { 
     echo $object->user; 
    } 
} 
1

См current:

Функция тока() просто возвращает значение элемента массива, который в настоящее время, на которую указывает внутренний указатель.

и все это Смотрите также -s (end, each, key, prev, reset, next).

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