Я знаю, что на эту тему много вопросов, но никто не справляется с этим (насколько я мог видеть).
У меня есть массив PHP (который FYI, возвращается через ответ Guzzle) в проекте Laravel.
Массив PHP
$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" } } }
Я просто хочу извлечь ключи «id» и «name» ниже, чтобы использовать их в представлении, но я немного в тупике. Я пробовал приведенные ниже предложения, но не могу это решить.
Как сгладить многомерный массив?
PHP foreach с вложенным массивом?
Я также посмотрел на array_walk_recursive .
Любая помощь будет потрясающей и оцененной! Я хочу иметь возможность использовать эти два ключа в Laravel так:
контроллер
return View::make('users')->with('users',$users);
Посмотреть
@foreach ($users as $key => $user) {{ $user["id"] }} {{ $user["name"] }} @endforeach
Вы можете попробовать следующее:
@foreach ($users['spirits'] as $user) {{ $user["id"] }} {{ $user["name"] }} @endforeach
Лучше проверить возвращаемый результат в вашем контроллере, прежде чем отправить его в представление, используя что-то вроде этого, чтобы в вашем представлении не было ошибок:
$users = 'Get it from somewhere...'; if(!$users['error']) { return View::make('users')->with('users', $users); } else { // Show an error with a different view }
в случае, если ваши пользователи всегда хранятся в @foreach
переменной ваших переменных $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
.