【问题标题】:Looping PHP Nested Arrays - Extract values into Blade Views (Laravel)循环 PHP 嵌套数组 - 将值提取到刀片视图中 (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

【问题讨论】:

    标签: php arrays laravel blade guzzle


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-01
      • 2015-03-17
      • 2022-01-23
      • 2021-05-05
      • 2016-06-29
      • 2019-09-11
      • 2021-05-11
      • 2021-02-11
      相关资源
      最近更新 更多