Laravel 4 - foreach in foreach


Laravel 4 - foreach in foreach

我正在用@foreach显示一些内容。但是如果这个数据与另一个@foreach…

中的任何数据匹配,我想以不同的方式显示该内容

这是我的代码:

@foreach($todasactividades as $a)
    <div class="marco-cabecera">
            @foreach($actividades as $activ)
                @if($a->id == $activ->id)
                <?php $bandera = true; ?>
                @elseif($a->id != $activ->id)
                <?php $bandera = false; ?>
                    @if($bandera)
                        {{ $a->actividad }}
                    @elseif(!$bandera)
                        {{ $a->actividad }} Something different!!
                    @endif
                @endif 
            @endforeach
    @endforeach

我已经尝试了一些不同的东西,所以现在我认为我的代码是一团乱…

有谁知道我怎么修理它吗?

提前感谢!

我是这样解决这个问题的……

@foreach($todasactividades as $a)   
        <?php $bandera = 0 ?>
        @foreach($actividades as $activ)
            @if($a->id == $activ->id) 
                <?php $bandera++ ?>
            @endif
        @endforeach
        @if($bandera == 0)
            <div class="marco-fondo-blanco">
            {{ $a->actividad }}
            </div>
        @else 
            <div class="marco-fondo-gris">
            {{ $a->actividad }}
            </div>
        @endif
@endforeach

这会清理你的代码并修复一些逻辑问题。

@foreach($todasactividades as $a)
    <div class="marco-cabecera">
            @foreach($actividades as $activ)
                @if($a->id == $activ->id)
                    {{ $a->actividad }}
                @else
                    {{ $a->actividad }} Something different!!
                @endif 
            @endforeach
    </div> 
@endforeach

不要在彼此内部执行这些循环。创建一个查找数组

$activities = array();
@foreach($todasactividades as $a) {
    $activities[$a->id] = $a->id;
}

然后创建主循环并检查是否设置了活动

    <div class="marco-cabecera">
    @foreach($actividades as $activ)
        @if(isset($activities[$activ->id]))
            {{ $a->actividad }}
        @else
            {{ $a->actividad }} Something different!!
        @endif
    @endforeach
    </div>

您可以尝试以下方法,不需要使用@if<?php标记或其他变量):

@foreach($todasactividades as $a)
    <div class="marco-cabecera">
        @foreach($actividades as $activ)
            {{ $a->actividad }} 
            {{ $a->id != $activ->id ? 'Something different!!' : '' }}
        @endforeach
    </div>
@endforeach