如何停止在foreach laravel中循环相同的数据?

时间:2017-03-14 18:19:43

标签: php laravel loops foreach

以下是我得到的结果:

=============================================== ========
Cakupan Keilmuan
Superspesialis,misalnya:taksonomi jamur,atau studi Jepang
Cakupan Keilmuan
Spesialis,misalnya:fisiologi tumbuhan atau ekologi pesisir,atau studi Asia Timur
Cakupan Keilmuan
Cabang ilmu,misalnya:botani atau studi wilayah
Cakupan Keilmuan
Disiplin ilmu,misalnya:biologi atau sosiologi
================================================== ======

我如何才能得到如下结果?

=============================================== =========
Cakupan Keilmuan
Superspesialis,misalnya:taksonomi jamur,atau studi Jepang
Spesialis,misalnya:fisiologi tumbuhan atau ekologi pesisir,atau studi Asia Timur
Cabang ilmu,misalnya:botani atau studi wilayah
Disiplin ilmu,misalnya:biologi atau sosiologi

=============================================== =========

//My Codes In Controller:

$isi = DB::table('tb_indikator_penilaian')
        ->leftJoin('tb_sub_unsur_penilaian', 'tb_sub_unsur_penilaian.id_sub_unsur', '=', 'tb_indikator_penilaian.id_sub_unsur_penilaian')
        ->leftJoin('tb_unsur_penilaian', 'tb_indikator_penilaian.id_unsur_penilaian', '=', 'tb_unsur_penilaian.id_unsur')
        ->select('tb_indikator_penilaian.indikator', 'tb_sub_unsur_penilaian.sub_unsur_penilaian', 'tb_unsur_penilaian.unsur_penilaian', 'tb_indikator_penilaian.nilai')
        ->where('tb_indikator_penilaian.id_unsur_penilaian', '=', 4)
        ->get();

return view('form-akreditasi', compact('isi'));


//My Codes In View:

<td data-title="Indikator" class="string">
    @foreach($isi as $dataindikator)
       <b>{{ $dataindikator->sub_unsur_penilaian }}</b><br>
       {{ $dataindikator->indikator }}<br>
    @endforeach
</td>


请帮帮我,谢谢!

2 个答案:

答案 0 :(得分:1)

这样做:

<?php $header = null ?>
<td data-title="Indikator" class="string">
    @foreach($isi as $dataindikator)
       @if ($header != $dataindikator->sub_unsur_penilaian)
           <b>{{ $dataindikator->sub_unsur_penilaian }}</b><br>
           <?php $header = $dataindikator->sub_unsur_penilaian ?>
       @endif
       {{ $dataindikator->indikator }}<br>
    @endforeach
</td>

这样,您只会在第一次找到/更改时打印标题。

答案 1 :(得分:1)

如果使用laravel&gt; = 5.3,请使用刀片循环变量:

<td data-title="Indikator" class="string">
    @foreach($isi as $dataindikator)
       @if ($loop->first)
           <b>{{ $dataindikator->sub_unsur_penilaian }}</b><br>
       @endif
       {{ $dataindikator->indikator }}<br>
    @endforeach
</td>

https://laravel.com/docs/5.3/blade#the-loop-variable