php foreach循环每2个元素包装一次,然后每3个元素包装一次
我试图将每两个元素包装在一个div中,然后将每三个元素包装在一个foreach循环中。我已经看过很多关于每2个或3个包装的帖子,但是我需要每2个和每3个包装的交替布局 这是我尝试使用的代码:php foreach循环每2个元素包装一次,然后每3个元素包装一次,php,html,loops,foreach,Php,Html,Loops,Foreach,我试图将每两个元素包装在一个div中,然后将每三个元素包装在一个foreach循环中。我已经看过很多关于每2个或3个包装的帖子,但是我需要每2个和每3个包装的交替布局 这是我尝试使用的代码: <?php $row = 2; ?> <?php $count = 0; ?> <?php $i=1;foreach($list as $item) : ?> <?php if($count % $row =
<?php $row = 2; ?>
<?php $count = 0; ?>
<?php $i=1;foreach($list as $item) : ?>
<?php if($count % $row == 0) : ## start 2 row ?>
<?php $endrow = 1; ?>
<div class="row double">
<?php endif; ?>
<div class="col-lg-6 col-12">
aaa
</div>
<?php if($count % $row == $endrow) : ## end 2 row ?>
</div>
<?php $i = 0; ?>
<?php $row = 3; ?>
<?php $endrow = 2; ?>
<?php endif; ?>
<?php if($count % $row == 0) : ## start 3 row ?>
<?php $endrow = 2; ?>
<div class="row triple">
<?php endif; ?>
<div class="col-lg-4 col-12">
bbb
</div>
<?php if($count % $row == $endrow) : ## end 3 row ?>
</div>
<?php $i = 0; ?>
<?php $row = 2; ?>
<?php $endrow = 1; ?>
<?php endif; ?>
<?php $count++;$i++;endforeach; ?>
aaa
bbb
这是输出:
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="row triple">
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-6 col-12"> aaa </div>
<div class="col-lg-4 col-12"> bbb </div>
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="row triple">
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-6 col-12"> aaa </div>
<div class="col-lg-4 col-12"> bbb </div>
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="row triple">
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-6 col-12"> aaa </div>
<div class="col-lg-4 col-12"> bbb </div>
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="row triple">
<div class="col-lg-4 col-12"> bbb </div>
aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
但这正是我努力实现的目标:
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="col-lg-6 col-12"> aaa </div>
</div>
<div class="row triple">
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-4 col-12"> bbb </div>
</div>
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="col-lg-6 col-12"> aaa </div>
</div>
<div class="row triple">
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-4 col-12"> bbb </div>
<div class="col-lg-4 col-12"> bbb </div>
</div>
<div class="row double">
<div class="col-lg-6 col-12"> aaa </div>
<div class="col-lg-6 col-12"> aaa </div>
</div>
aaa
aaa
bbb
bbb
bbb
aaa
aaa
bbb
bbb
bbb
aaa
aaa
任何帮助,或指向正确的方向都将不胜感激 使用嵌套循环。外部循环按5计数,然后是两个内部循环,分别打印两个元素和三个元素
$len = count($list);
for($i = 0; $i < $len; $i += 5) {
echo '<div class="row double">';
for ($j = $i; $j < min($len, $i+2); $j++) {
echo '<div class="col-lg-6 col-12">' . $list($j) . '</div>';
}
echo '</div>';
if ($j >= $len) {
break;
}
echo '<div class="row triple">';
for (; $j < min($len, $i + 3); $j++) {
echo '<div class="col-lg-4 col-12">' . $list($j) . '</div>';
}
echo '</div>';
}
$len=count($list);
对于($i=0;$i<$len;$i+=5){
回声';
对于($j=$i;$j=$len){
打破
}
回声';
对于(;$j
非常感谢,这很有效-尽管第二个for循环缺少$j=$i:)但第二个循环不会从$i
重新启动,而是从第一个循环结束时的$j
值开始。