Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel php foreach循环按键获取值_Php_Laravel_Foreach - Fatal编程技术网

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