Laravel php foreach 循环按键获取值

Ric*_*ore 4 php foreach laravel

我想我把这个简单的事情搞糊涂了。我只想获取我的密钥“周”和“天”的值。我已经尝试过以下方法:

\n\n
@foreach($years as $key3 => $year)\n                <h1>{{$key3}}</h1>\n                @foreach($year as $key2 => $months)\n                    <p>{{$key2}}</p>\n                    @foreach($months as $key1 => $days)\n                        <p>{{$days[\'weeks\']}}</p>\n                        <p>{{$days->weeks}}</p> //try two//\n                    @endforeach\n                @endforeach\n            @endforeach\n
Run Code Online (Sandbox Code Playgroud)\n\n

其响应此错误:

\n\n
Illegal string offset \'weeks\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我尝试循环的数组的示例:

\n\n
    array:4 [\xe2\x96\xbc\n  2016 => array:12 [\xe2\x96\xbc\n    "01" => array:2 [\xe2\x96\xbc\n      "weeks" => 5\n      "days" => "31"\n    ]\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人可以帮助我理解我做错了什么吗?

\n

Tim*_*Uum 7

你不需要最后一个 foreach,

@foreach($years as $key => $year)
   <h1>{{$key}}</h1>
   @foreach($year as $key => $months)
        <p>{{$key}}</p>
        {{ $months['weeks'] }}
        {{ $months['days'] }}
   @endforeach
 @endforeach
Run Code Online (Sandbox Code Playgroud)

Days 不是一个数组。但月份包含关键:周和日。如果您想要对象表示法 (->),只需在数组前键入 (object) 将其转换为对象即可。

  • @RickiMoore 因为正如您的数组示例所示,“01”是包含数组的月份。该数组仅包含 2 个带有值的键,而不包含另一个数组。因此循环月份只会返回值。 (2认同)