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