2014-12-16 4 views
0

Как бы получить значение children в приведенной ниже структуре массива?Loop через эту структуру массива

Array 
(
    [post_id] => 2773 
    [children] => Array 
    (
    ) 
) 

Я попытался это, но он не работает:

foreach ($array as $key => $value) { 
    print_r($value['children']); 
} 

Он просто не дал ничего.

+0

Ваш 'Еогеасп()' будет 1 уровень слишком глубоко. 'children' будет' $ key', поэтому вам нужно будет сделать 'foreach ($ array as $ key => $ value) {if ($ key ==" children ") print_r ($ value); } ' – Sean

+0

Добавьте' error_reporting (~ 0); 'вверху вашего скрипта, и вы узнаете, почему он ничего не показывает. –

ответ

1

Вам вообще не нужно делать петли. Просто сделайте это:

print_r($array['children']); 
+0

Что делать, если 'children' содержит другой массив? Как я получу это? –

+1

'$ array ['children'] ['inner_key']' ... – undefined

+0

@ user3866797 Это сильно зависит от того, что это за массив, что он вызвал и т. Д. Однако, если у вас просто был другой массив с именем 'children' , вы можете просто сделать '$ array ['children'] ['children']'. –

-1

Вы можете использовать var_dump($array) вместо и это даст вам более подробную информацию, а внутренний массив.

+0

Почему это плохое разрешение, это гораздо более быстрое решение для отладки проблем? – ziGi

1

Ваш пример ничего не возвращает, потому что массив children пуст.

Если ваш массив выглядел так (пример):

Array 
(
    [post_id] => 2773 
    [children] => Array 
    (
     [0] => Item, 
     [1] => Item, 
    ) 
) 

Тогда ваш print_r($array['children']) возвращает что-то.

В качестве альтернативы, вы можете сделать это:

foreach($array['children'] as $item) { 
    echo $item ."<br />"; 
} 

(При условии, что массив не пуст)

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