如何打破foreach循环或循环到10条记录

时间:2016-09-18 11:28:08

标签: php html

假设我的数据库中有56条记录。我正在使用FOR LOOP来显示它们     我想每次追加10条记录后追加 div

 <?php
        $a = 56;
        for($i=0;$i<$a;$i++){
            echo "<div>";
            echo $i."</br>";
            echo "</div>";
        }
 ?>

输出:

<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
...
<div>56</div>

我想在每次10条记录之后附加<div>

  <div>
    0
    1
    2
    .
    9
   </div>
   <div>
    10
    11
    .
    19
   </div>
    .
    .
   <div>
    51
    52
    .
    .
    56
   </div>

2 个答案:

答案 0 :(得分:5)

您可以使用modulus operator

<?php
$a = 56;
echo "<div>";
for($i=0;$i<$a;$i++){
    echo $i . "<br />";

    if (($i+1) % 10 == 0) {
        echo "</div><div>";
    }
}
echo "</div>";
?>

请注意,如果循环次数未知 - $a可能为9,输出结果为:

<div>
    0
    ...
    9
</div><div>
</div>

如果您想要在完全分割的情况下防止close-open div的副本,您可以将代码更改为:

<?php
$a = 56;
echo "<div>";
for($i=0;$i<$a;$i++){
    echo $i . "<br />";

    if (($i+1) != $a && ($i+1) % 10 == 0) {
        echo "</div><div>";
    }
}
echo "</div>";
?>

答案 1 :(得分:2)

您需要根据主要是

的某些条件附加开头和结束div
  1. 如果是第一次迭代
  2. 如果是第十次迭代
  3. 如果是最后一次迭代
  4. 以下是示例代码:

    $a = 56;
    for ($i = 0; $i < $a; $i++) {
    
      // If it is the first iteration, echo a opening div
      if ($i == 0)
        echo "<div>";
    
      // If it is a tenth iteration but not the last one then append a closing and a opening div
      if ($i != 0 && $i % 10 == 0 && $i != $a - 1)
        echo "</div><div>";
    
      echo $i.
      "<br>";
    
      // If it is the last iteration, append a closing div
      if ($i == $a - 1)
        echo "</div>";
    }