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

PHP foreach循环,每一步都会在循环外创建新的包装器,php,foreach,Php,Foreach,我需要一些关于这个的建议。如果我有一个PHP foreach循环: <div class="wrapper"> <?php foreach ($item as $element): ?> <!-- some HTML of $element --> <?php endforeach; ?> </div> 我是否需要在外部运行另一个foreach来实现这一点 谢谢你试试这个 $i = 0; <?php

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

<div class="wrapper">
  <?php foreach ($item as $element): ?>
    <!-- some HTML of $element -->
  <?php endforeach; ?>
</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++;
    }
?>
$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; ?>
$i=0;
试试这个

$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++;
    }
?>
$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; ?>
$i=0;
可能的解决方案:

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

可能的解决方案:

<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) { 
        if($i%5==0) echo "<div class=\"wrapper\">";
?>

        <!-- some HTML of $element -->

<?php
        if($i%5==4) echo "</div>";
        $i++;
    }
?>
$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; ?>
$i=0;
试试这个

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

实际上不,您必须执行opossite,也就是每隔5次在for循环中回显包装器$items@Akis以及如何准确地要求每5项
。您可以添加一个计数器并计算模5;)正如neil提议的那样,实际上不,你必须做opossite,也就是每5个循环回显一次包装器$items@Akis以及如何准确地要求每5项
。您可以添加一个计数器并计算模5;)正如尼尔建议的那样,我认为这段代码做不到。它将在div中包装第一个元素,然后是第五个元素,以此类推。。。所有其他元素都将在div之外。您测试过它吗?我认为这段代码不会起作用。它将在div中包装第一个元素,然后是第五个元素,以此类推。。。所有其他元素都将在div之外。你测试过吗?