PHP foreach循环,每执行一步都会在循环外创建新的包装器


PHP foreach loop, every amount of steps create new wrapper outside loop

我需要一些关于这个的建议。如果我有一个PHP foreach循环:

<div class="wrapper">
  <?php foreach ($item as $element): ?>
    <!-- some HTML of $element -->
  <?php endforeach; ?>
</div>

并且在每5个CCD_ 1之后,我想要在foreach中创建具有下5个项目的新CCD_。并重复此步骤,直到全部完成。输出应该像:

<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才能实现这一点?

感谢

试试这个

$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++;
    }
?>

可能的解决方案:

<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>

试试这个

$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; ?>