【问题标题】:Displaying recursively multidimensional, different depth array in blade在刀片中显示递归多维、不同深度的数组
【发布时间】:2021-01-20 10:19:33
【问题描述】:

我想使用子视图在刀片中显示多维数组。

$arr = [ 923, 100 => [ 123, 158, 12 => [ 999, 998 ] ], 111, 12 ];

刀片视图:

@foreach ($arr as $a)
    @if (is_array($a))
        @include('inc', ['a' => $a])
    @else
        <p>{{ $a }}</p>
    @endif
@endforeach

子视图inc:

@foreach($arr as $key=>$value)
    @if (is_array($value))
        @include('inc', array('value', $value)) 
    @else
        <p>{{$value}}</p>
    @endif
@endforeach

结果我得到了无限循环。怎么了?

【问题讨论】:

  • 你的预期输出是什么?

标签: php laravel recursion


【解决方案1】:

您将无效名称传递给子视图。 而不是这样做:

@foreach($arr as $key => $value)
    @if (is_array($value))
        @include('inc', array('value', $value)) 
    @else
        <p>{{$value}}</p>
    @endif
@endforeach

您将名称为 value 的变量传递给子视图 inc,并且您正在迭代 $arr 变量。您不会更改 $arr 的值,因此它的值不会更改,您会一遍又一遍地迭代它。

你应该这样做:

@foreach ($arr as $key => $value)
    @if (is_array($value)) 
        @include('inc', [ 'arr' => $value ])
    @else
        <p>{{ $value }}</p>
    @endif
@endforeach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 2012-06-26
    • 2016-12-04
    • 2016-10-13
    • 1970-01-01
    • 2017-10-28
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多