Laravel php 结合两个foreach

Laravel php combine two foreach

在我的 blade.php 文件中,我试图合并两个 foreach 循环以显示 table 中的数据。我曾尝试使用类似嵌套循环的方法,但它不起作用。

@foreach($cat->products as $idx => $product)
    <tr ng-init="item.items[{{$cat->id}}][{{$idx}}] = {};">
    @foreach ($queryInv as $querInvs)
        <td>{{$product->sku}}</td>
        <td>{{$product->name}}</td>
        <td class="text-right">{{{$querInvs->total or 0}}}</td>
    </tr>
    @endforeach
@endforeach

我只需要将总数据插入 table。现在总数显示正确,但它会重复 table.

中的 sku 和名称

定义一个我们将用作 "flag" 的数组,并在每次迭代中检查当前产品 SKU 是否不在我们的 "flag" 数组中。如果不是,那么我们会显示并将当前产品 SKU 添加到已处理 SKU 列表中,然后照常继续。

@php $skus = [] @endphp
@foreach($cat->products as $idx => $product)
    @if (!in_array($product->sku, $skus))
        <tr ng-init="item.items[{{$cat->id}}][{{$idx}}] = {};">
            @foreach ($queryInv as $querInvs)
                <td>{{$product->sku}}</td>
                <td>{{$product->name}}</td>
                <td class="text-right">{{{$querInvs->total or 0}}}</td>
            @endforeach
        </tr>
        @php array_push($skus, $product->sku); @endphp
    @endif
@endforeach

注意:您使用的是Laravel 4,目前Laravel的版本是5.7,我绝对会更新使用最新的版本。

阅读Material

in_array

array_push