如何为此结构创建逻辑?
[1, 2, 3]
[4, 5, 6]
我有猫头鹰旋转木马的照片。它应该显示六张照片,三列两列,接下来的六张照片应该放在第二张幻灯片中,接下来六张放在第三张幻灯片中等等......
当我这样做时:
<div class="row">
@foreach($videos as $key => $video)
@if(($key)%7==0)
</div><div class="row">
@endif
<div class="col-md-4">
<a id="videos" class="fancybox fancybox.iframe be-relative" href="http://www.youtube.com/embed/><span class="be-absolute"></span></a>
</div>
@endforeach
</div>
但是,这给了我:
[1, 2, 3]
[3, 4, 5]
...在第二张幻灯片中我有
[6, 7, 8]
[9, 10, 11]
[12, 13, 14]
......但这12,13,14应该进入第三张幻灯片。
答案 0 :(得分:0)
你需要将它们分成6个
@foreach( $videos->chunk(6) as $chunk)
<div class="row">
@foreach( $chunk as $video )
<div class="col-md-4">
<a id="videos" class="fancybox fancybox.iframe be-relative" href="http://www.youtube.com/embed/><span class="be-absolute"></span></a>
</div>
@endforeach
</div>
@endforeach
答案 1 :(得分:0)
您发布的结果让我感到困惑,因为它们似乎不适合您发布的代码(同时&#34; 3&#34;是第一行中的最后一个元素,第二行中的第一个元素) 。可能你混淆了什么?
根据您的代码,如果$key
确实是连续索引(1,2,3,4,...),它应该如下所示:
First slide:
[1, 2, 3]
[4, 5, 6]
Second slide:
[ 7, 8, 9]
[10, 11, 12]
[13]
Third slide:
[14, 15, 16]
[17, 18, 19]
[20]
...
基本问题是,您在每个第7个元素之前添加分隔符,但实际上希望在每6个元素之后添加它。听起来令人困惑,完全是这样,但想一想它就会有意义。 ; - )
这是你需要改变的第一件事,但我也建议使用iteration
- 循环变量,它由刀片循环提供并包含当前迭代的数量,而不是$key
。
总而言之,这应该有效:
<div class="row">
@foreach($videos as $video)
<div class="col-md-4">
<a id="videos" class="fancybox fancybox.iframe be-relative" href="http://www.youtube.com/embed/><span class="be-absolute"></span></a>
</div>
@if ((($loop->iteration % 6) == 0) && (!$loop->last))
</div><div class="row">
@endif
@endforeach
</div>
希望有所帮助!如果没有随意添加消息!