【问题标题】:laravel blade for and foreach with if loop maximum time带有if循环最大时间的laravel刀片for和foreach
【发布时间】:2017-02-19 14:22:21
【问题描述】:

我想 for 循环 7,并 foeach $time 到刀片。

如果有 $time foreach = for loop $i 是输出<div>O</div>,否则是输出<div>X</div>

但我的代码有问题...循环 35 次。

我想要循环总最大时间为 7 次

如果 $time = [3,6]

example output  :X X X O X X O

或者如果 $time = [ 1 , 2 , 4]

example output :  X O O X O X X

怎么办,请帮帮我,谢谢~

blade.php

@for ($i = 0; $i < 7; $i++)
@foreach($time as $value)

@if($value->time == $i)
  <div>O</div>
@else
  <div>X</div>   
@endif

@endforeach
@endfor

控制器

public function interview()
{
    $time = Interview_time::where('bsinformations_id',5)->get();
    return view('bs_sidebar.interview_time', [
        'time' => $time
    ]);
}

【问题讨论】:

  • 尝试使用@continue; 并删除else 语句(这就是您的循环执行35 次的原因)。将&lt;div&gt;X&lt;/div&gt; 移出 foreach,删除else 并将其替换为@continue;。这将按您的意愿运行。我已经构建了this 来展示这个想法,希望对您有所帮助。
  • @camelCase - 我可能错了,但不会在每次 for 迭代中输出 X,不管它是否在 foreach 内输出 0?
  • @MagnusEriksson 是的,但只有在 $value-&gt;time !== $i 由于@continue; 而达到。我认为这是 OP 正在寻找但不太确定的内容。
  • @camelCase - 我仍然认为你会得到太多的X。 @Bruce,这个循环和价值观的意义是什么?必须有另一种方法来做你想做的事情? $time 包含什么以及......嗯......你想解决什么?
  • @MagnusEriksson 你可能是对的......但我做了一点fiddle 正确吐出问题中列出的内容......但是正如你所说,它可能不会实际上是 OP 真正想要的。

标签: php laravel if-statement for-loop foreach


【解决方案1】:

你可以试试这个方法:

@for ($i = 0; $i < 7; $i++)
    $check = 0;
    @foreach($time as $value)

        @if($value->time == $i)
            <?php
                $check = 1;
            ?>
            @break 
        @endif

    @endforeach
    @if $check == 1
        <div>O</div>
    @else
        <div>X</div>
    @endif
@endfor

这样,循环只会运行7次,

请试一试,如果对你有帮助,请告诉我

谢谢。

【讨论】:

【解决方案2】:
   @for ($i = 0; $i < 7; $i++)
@foreach($time as $value)
    @if($value['time'] == $i)
        <?php
            $flag = 0;
        ?>
        @break
    @else
        <?php
        $flag = 1;
        ?>
    @endif
    @break
@endforeach
@if($flag==0)
    <div>O</div>
@else
    <div>X</div>
@endif
@endfor

【讨论】:

  • 阿加瓦拉感谢您的回答!但 foreach $time 仅循环 1 次,其他值不循环显示。
  • if $time = [ 1 , 2 , 4] 示例输出:X O O X O X X
猜你喜欢
  • 2018-04-04
  • 2017-11-13
  • 2016-06-29
  • 2017-05-29
  • 2018-12-21
  • 1970-01-01
  • 2021-05-05
  • 2021-02-11
  • 2017-09-26
相关资源
最近更新 更多