我需要一些关于这个的建议。如果我有一个PHP foreach循环:
<div class="wrapper">
<?php foreach ($item as $element): ?>
<!-- some HTML of $element -->
<?php endforeach; ?>
</div>
每隔5 $item
之后,我想创建一个新的.wrapper
,其中包含foreach中的下5个项目。并重做这一步,直到所有人都通过。
输出应该是:
<div class="wrapper">
<!-- some HTML of $element 1 -->
<!-- some HTML of $element 2 -->
<!-- to $element 5 -->
</div>
<div class="wrapper">
<!-- some HTML of $element 6 -->
<!-- to $element 10 -->
</div>
我是否需要在外面运行另一个foreach
以使其成为可能?
由于
答案 0 :(得分:3)
试试这个
$i = 0;
<?php
foreach ($item as $element) {
if($i%5==0) echo "<div class=\"wrapper\">";
?>
<!-- some HTML of $element -->
<?php
if($i%5==4) echo "</div>";
$i++;
}
?>
答案 1 :(得分:2)
可能的解决方案:
<div class="wrapper">
<?php $counter = 0; ?>
<?php foreach ($item as $element): $counter++; ?>
<!-- some HTML of $element -->
<?php if ($counter % 5 === 0 && $counter !== count($item)): ?>
</div>
<div class="wrapper">
<?php endif; ?>
<?php endforeach; ?>
</div>
答案 2 :(得分:0)
试试这个
$i = 0;
<?php foreach($item as $element) : ?>
<?php if($i == 0) : $i=5; ?>
<div class="wrapper">
<?php endif; ?>
<!-- some HTML of $element -->
<?php $i -= 1; if($i == 0) : ?>
</div>
<?php endif; ?>
<?php endforeach; ?>