PHP foreach循环,每一步都创建了新的包装器外部循环

时间:2015-02-19 11:40:33

标签: php foreach

我需要一些关于这个的建议。如果我有一个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以使其成为可能?

由于

3 个答案:

答案 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; ?>