【问题标题】:Laravel Loop Through Multidimesional ArrayLaravel 循环遍历多维数组
【发布时间】:2016-10-28 14:28:05
【问题描述】:

我试图在我的视图中循环一个多维数组。

数组(我将 $mailchimp 从我的控制器传递到我的视图)是:

    array:19 [▼
      "id" => "f3200e9cc5a900bb7c075103b871232f0"
      "email_address" => "john.doe@discworld.com"
      "unique_email_id" => "xalasd"
      "email_type" => "html"
      "status" => "subscribed"
      "merge_fields" => array:2 [▼
        "FNAME" => "John"
        "LNAME" => "Doe"
      ]
      "stats" => array:2 [▶]
      "ip_signup" => ""
      "timestamp_signup" => ""
      "ip_opt" => "93.212.91.32"
      "timestamp_opt" => "2016-10-27T13:53:02+00:00"
      "member_rating" => 2
      "last_changed" => "2016-10-27T13:53:02+00:00"
      "language" => ""
      "vip" => false
      "email_client" => ""
      "location" => array:6 [▶]
      "list_id" => "76980934492"
      "_links" => array:8 [▶]
    ]

在我看来,这段代码:

@foreach($mailchimp as $user)
    @foreach($user as $key => $value)
      <ul>
        <li>{{$value}}</li>
       </ul>
     @endforeach
@endforeach

抛出异常:foreach() 提供的参数无效

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 您发布的第一个代码sn-p是单个用户的单个数组,而不是多个用户的多维数组。

标签: php laravel foreach


【解决方案1】:

您期望每个第一个数组的值也是一个数组。事实并非如此,只有第一个数组中的一些值是数组,所以你必须放一个条件。您可以使用 is_array 帮助器来查看第一个数组中的值是否是实际数组,如果是,则循环遍历其中的每一个。

foreach($a as $b){
    if(is_array($b)){
        foreach($b as $c){
            echo($c);
        }
    }
}

【讨论】:

  • 谢谢卡洛斯。它用这个结果尝试了你的解决方案: htmlentities() 期望参数 1 是字符串,给定数组
【解决方案2】:

正如 Carlos 所说,您遇到的主要问题是因为您试图回显数组 find his answer here

关于您的第二个问题Thanks Carlos. It tried you solution with this result: htmlentities() expects parameter 1 to be string, array given,您在该页面上是否还有其他代码,也许是 {{ Form::text('something', $array) }}

【讨论】:

  • 我删除了所有其他代码。并尝试了卡洛斯的建议。异常仍然存在。有什么想法吗?
猜你喜欢
  • 2013-04-01
  • 2012-04-21
  • 2011-01-02
  • 2014-05-01
相关资源
最近更新 更多