Laravel php foreach循环按键获取值
我想我把这件简单的事情弄糊涂了。我只想得到我的关键“周”和“天”的价值。我尝试了以下方法:Laravel php foreach循环按键获取值,php,laravel,foreach,Php,Laravel,Foreach,我想我把这件简单的事情弄糊涂了。我只想得到我的关键“周”和“天”的价值。我尝试了以下方法: @foreach($years as $key3 => $year) <h1>{{$key3}}</h1> @foreach($year as $key2 => $months) <p>{{$key2}}</p>
@foreach($years as $key3 => $year)
<h1>{{$key3}}</h1>
@foreach($year as $key2 => $months)
<p>{{$key2}}</p>
@foreach($months as $key1 => $days)
<p>{{$days['weeks']}}</p>
<p>{{$days->weeks}}</p> //try two//
@endforeach
@endforeach
@endforeach
这是im尝试循环的阵列的一个示例:
array:4 [▼
2016 => array:12 [▼
"01" => array:2 [▼
"weeks" => 5
"days" => "31"
]
有人能帮我理解我做错了什么吗?你不需要最后一个foreach
@foreach($years as $key => $year)
<h1>{{$key}}</h1>
@foreach($year as $key => $months)
<p>{{$key}}</p>
{{ $months['weeks'] }}
{{ $months['days'] }}
@endforeach
@endforeach
@foreach($key=>$year的年份)
{{$key}}
@foreach($key=>$months的年份)
{{$key}}
{{$months['weeks']}
{{$months['days']}
@endforeach
@endforeach
天不是数组。但这个月包含着关键:几周和几天。
如果需要对象符号(->),只需在数组前键入(object)即可将其强制转换为对象。代码气味:您可能应该为不同数组的不同键使用不同的名称。您能解释一下您的意思吗?请参见L1、L3和L5?它们都与嵌套的
foreach
循环的键共享相同的变量名$key
。您应该将它们重命名为不同的名称,以免混淆。(通常内部的$key
会覆盖外部的$key
,但这是一个很好的做法)好的,很高兴知道。我以为$key只是位置的名称。为什么我不需要最后一个foreach?@rickimore,因为正如您的数组示例所示,“01”是一个包含数组的月份。该数组只包含两个带值的键,而不包含另一个数组。因此,循环遍历月份只会返回值。
@foreach($years as $key => $year)
<h1>{{$key}}</h1>
@foreach($year as $key => $months)
<p>{{$key}}</p>
{{ $months['weeks'] }}
{{ $months['days'] }}
@endforeach
@endforeach