Laravel 4 - foreach in foreach

时间:2014-08-11 21:42:46

标签: php foreach laravel-4 blade

我正在使用@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

我尝试了一些不同的东西,所以现在我认为我的代码很乱......

有人知道我该如何解决它?

提前致谢!

4 个答案:

答案 0 :(得分:1)

我已经用这种方式解决了这个问题...

@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

答案 1 :(得分:0)

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

@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

答案 2 :(得分:0)

不要在彼此之内做这些循环。创建一个查找数组

$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>

答案 3 :(得分:0)

您可以尝试关注,不需要使用@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