2014-06-19 5 views
5

Я знаю, что есть много вопросов по этой теме, но никто не справляется с этим (насколько я мог видеть).Looping PHP Вложенные массивы - Извлечение значений в Blade Views (Laravel)

У меня есть массив PHP (который FYI, возвращается через ответ Guzzle) в проекте Laravel.

РНР массив

$users = array(2) { 
    ["error"]=> 
    bool(false) 
    ["spirits"]=> 
    array(2) { 
    [0]=> 
    array(2) { 
     ["id"]=> 
     string(1) "1" 
     ["name"]=> 
     string(5) "Foo" 
    } 
    [1]=> 
    array(2) { 
     ["id"]=> 
     string(1) "2" 
     ["name"]=> 
     string(3) "Bar" 
    } 
    } 
} 

Я просто хочу, чтобы извлечь «идентификатор» и клавиши «имя» ниже, чтобы использовать в представлении, но я немного тупик. Я пробовал приведенные ниже предложения, но не могу это решить.

How to Flatten a Multidimensional Array?

PHP foreach with Nested Array?

Я также посмотрел в array_walk_recursive.

Любая помощь будет потрясающей и оцененной! Я хочу, чтобы иметь возможность использовать эти 2 ключа в Laravel так:

контроллер

return View::make('users')->with('users',$users); 

Посмотреть

@foreach ($users as $key => $user) 
    {{ $user["id"] }} 
    {{ $user["name"] }} 
@endforeach 

ответ

4

Вы можете попробовать это:

@foreach ($users['spirits'] as $user) 
{{ $user["id"] }} 
{{ $user["name"] }} 
@endforeach 

Лучше проверить возвращаемое повторно Sult в контроллере, прежде чем отправить его к виду, используя что-то вроде этого, так что не будет никаких ошибок в вашей точке зрения:

$users = 'Get it from somewhere...'; 
if(!$users['error']) { 
    return View::make('users')->with('users', $users); 
} 
else { 
    // Show an error with a different view 
} 
+1

Спасибо! Часть I отсутствовала: '$ users ['spirits']' – Pete

+0

Добро пожаловать :-) –

1

в случае, если ваши пользователи всегда хранятся в spirits -Key вашей $users переменных вы просто может изменить свой @foreach -loop следующим образом:

@foreach ($users['spirits'] as $user) 
    {{ $user['id'] }} 
    {{ $user['name'] }} 
@endforeach 

в противном случае вы можете изменить значение, возвращаемое из контроллера. Это означает, что вы просто могли бы изменить строку:

return View::make('users')->with('users',$users);

к

return View::make('users')->with('users',$users['spirits']);

В этом случае у вас нет доступа к error -Key.

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