循环 PHP 嵌套数组 - 将值提取到刀片视图中 (Laravel)
Posted
技术标签:
【中文标题】循环 PHP 嵌套数组 - 将值提取到刀片视图中 (Laravel)【英文标题】:Looping PHP Nested Arrays - Extract values into Blade Views (Laravel) 【发布时间】:2014-08-09 13:19:08 【问题描述】:我知道关于这个话题有很多问题,但没有一个能完全解决这个问题(据我所知)。
我在 Laravel 项目中有一个 php 数组(仅供参考,通过 Guzzle 响应返回)。
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”键,以便在视图中使用,但我有点难过。我已经尝试了以下建议,但无法完全解决。
How to Flatten a Multidimensional Array?
PHP foreach with Nested Array?
我还研究了 array_walk_recursive。
任何帮助都会非常棒和感激!我希望能够像这样在 Laravel 中使用这两个键:
控制器
return View::make('users')->with('users',$users);
查看
@foreach ($users as $key => $user)
$user["id"]
$user["name"]
@endforeach
【问题讨论】:
【参考方案1】:你可以试试这个:
@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
【讨论】:
谢谢!我缺少的部分是$users['spirits']
【参考方案2】:
如果您的用户始终存储在您的$users
变量的spirits
-key 中,您只需按如下方式修改您的@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。
【讨论】:
以上是关于循环 PHP 嵌套数组 - 将值提取到刀片视图中 (Laravel)的主要内容,如果未能解决你的问题,请参考以下文章