1

在下面的 while 循环中,每个 div 项都包含在一个li.

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

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

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

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

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

所以,我正在尝试这个,但这将一个 div 包裹在一个 li 中,而将另一个没有 li。

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

2 回答 2

2

在这些情况下的总体思路是:

  1. 在每次迭代中,如果$i % $itemsPerGroup == 0
  2. 打印一个项目
  3. 在循环之前,关闭当前组 if++$i % $itemsPerGroup == 0
  4. 当迭代结束时关闭最后一个打开的组——如果$i % $itemsPerGroup != 0

所以:

$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
于 2012-11-06T12:31:24.093 回答
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 
?>
于 2012-11-06T12:31:24.253 回答