如何在 foreach blade laravel 访问上一个或下一个数组

How to access prev or next array at foreach blade laravel

我目前正在开发一个 blade 视图,它将从控制器循环一个数组。

我刚刚创建了一个 table,其中包含方面、详细方面、当前状态和评论。所以,我想在我的 blade 视图中循环(使用 foreach),然后在我的数组中会有一个条件,即方面在下一行中具有相同的值。

对于table例如:

Aspects     | Detail Aspects | Current Status | Remark
Curriculum  |       1        |      Good      |  Good
Curriculum  |       2        |      Good      |  Good
Curriculum  |       3        |      Good      |  Good
Teaching    |       4        |      Good      |  Good

所以对于 table,我想检查 if prev.Aspect == current.Aspect,所以我不需要再次打印它,或者我可以 rowspan 那。

我已经在我的 foreach 中使用了 $index,但我只能将其打印为数字,无法访问我的 Obj[index] 值。

这是我的 blade 代码:

<table border='1'>
        <tr align='center' class='header'><td>Aspects</td><td>Details</td><td>Current Status</td><td>Remark</td></tr>
        @foreach($prAspect as $index => $data)
            <tr>
                <td>{{$data->praDesc}}</td>
                <td>{{$data->prsDesc}}</td>
                <td>{{$data->currentStatus}}</td>
                <td>{{$data->remark}}</td>
            </tr>
        @endforeach
</table>

您可以使用 for 循环代替:

@for ($i = 0; $i < count($prAspect); $i++)
    // use $i as index
    // use $prAspect[$i]
@endfor

在获取数据时将 ->toArray() 添加到查询构建器。这将有助于您在这种情况下以数组形式访问项目以便于比较。

<table border='1'>
    <tr align='center' class='header'><td>Aspects</td><td>Details</td><td>Current Status</td><td>Remark</td></tr>
    @foreach($prAspect as $index => $data)
        <tr>
            <td>{{$data['praDesc']}}</td>
            <td>{{$data['prsDesc']}}</td>
            <td>{{$data['currentStatus']}}</td>
            <td>{{$data['remark']}}</td>
        </tr>
    @endforeach
</table>

尝试一下可能会有帮助

@foreach($prAspect as $index => $data)
     <tr>
        <td>{{!$loop->first ? $prAspect[$index- 1]->praDesc : $data->praDesc}}</td>
        <td>{{!$loop->first ? $prAspect[$index - 1]->prsDesc : $data->prsDesc }}</td>
        <td>{{!$loop->first ? $prAspect[$index- 1]->currentStatus : $data->currentStatus }}</td>
        <td>{{!$loop->first ? $prAspect[$index- 1]->remark : $data->remark }}</td>        
   </tr>     
@endforeach