PHP简单分组while循环中的项目

时间:2012-11-06 12:27:04

标签: php loops while-loop

在以下while循环中,每个div项都包含在li

<php while (condition){
    <li><div>Item</div></li>
<?php } ?>

在上面的循环中,我想在li中包含2个div项,这样我就可以获得类似的输出:

<li>
    <div>Item</div>
    <div>Item</div>
</li>

<li>
    <div>Item</div>
    <div>Item</div>
</li>

 <li>
    <div>Item</div>
</li>

所以,我正在尝试这个,但是这包裹了一个div而不是li。

<?php 
    while (condition){
    $i++;
    if($i % 2 == 0) { echo "<li>"; }
    ?>
        <div>Item</div>
<?php 
    if($i % 2 == 0) { echo "</li>"; }
     } //end loop 
?>

2 个答案:

答案 0 :(得分:2)

这些案例的一般想法是:

  1. 在每次迭代时,如果$i % $itemsPerGroup == 0
  2. ,请打开一个新组
  3. 打印项目
  4. 在循环之前
  5. ,如果++$i % $itemsPerGroup == 0
  6. ,请关闭当前组
  7. 当迭代结束时,关闭最后一个打开的组 - 如果$i % $itemsPerGroup != 0
  8. ,将存在一个组

    所以:

    $i = 0;
    while (condition){
       if($i % 2 == 0) { echo "<li>"; } // #1
       echo "<div>Item</div>"; // #2
       if(++$i % 2 == 0) { echo "</li>"; } // #3
    }
    
    if ($i % 2 != 0) { echo "</li>"; } // #4
    

答案 1 :(得分:1)

看起来更像是:

<?php
    $i = 1;
    while ($i < 10){
    $i++;
    if($i % 2 == 0) { echo "<li>"; }
    ?>
        <div>Item</div>
<?php 
    if($i % 2 == 1) { echo "</li>"; }
     } //end loop 
?>