计数器内部,循环每增加X次


Counter inside while loop every X times increase

我真的不知道如何解决这个问题,但我目前有一个while循环输出<li></li>

假设有35行,我希望计数器每五次增加一次。

所以输出应该是这样的。

 - 1 Name
 - 1 Name
 - 1 Name
 - 1 Name
 - 1 Name
 - 2 Name
 - 2 Name
 - 2 Name
 - 2 Name
 - 2 Name
 - 3 Name
 - 3 Name
 - 3 Name
 - 3 Name
 - 3 Name
 - 4 Name and so on...

我试着在整个循环中计数,并比较这个数字,看看它是否小于5,如果不小于5,就增加它,但我知道这是不对的。似乎无法找到最佳解决方案。

 while ($stmt->fetch()) {
          $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
    }

为了让这件事更清楚。。。基本上,我想让一个计数器变量运行。从1开始,但在while循环中每隔五次,我想将这个计数变量增加一。

$count = $rows = 0;
while ($stmt->fetch()) {
    if ($rows % 5 == 0)
        $count++;
    $rows++;
    $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
}

您可以使用array_fill()(psuedo代码(:

<?php
$li = "<li>Item</li>";
$row = array_fill(0, 5, $li);
$list = array_fill(0, 35, $row);
print_r($list);
?>

http://codepad.org/ETCv3GBK

如:

$count = 0;
while ($stmt->fetch() && $count++) {
    $HTML .= implode('', array_fill(0, 5, "<li data-id='$id' data-name='$name'>$count Name</li>"));
}

另一个演示(不过点火.io可能无法保存(:

https://ignite.io/code/514a9bf5ec221ee821000005

for($i=1; $i <= 20; $i++){
    $array[] = "Name " . $i;
}
$count = 1;
$output = 1;
for($i=0; $i < 20; $i++){
    if($count++ < 5)
        echo $output . ". " . $array[$i] . "<BR>";
    else{
        $count = 1;
        echo $output++ . ". " . $array[$i] . "<BR>";
    }
}

返回

  1. 名称1
  2. 名称2
  3. 名称3
  4. 名称4
  5. 名称5
  6. 名称6
  7. 名称7
  8. 名称8
  9. 名称9
  10. 名称10
  11. 名称11
  12. 名称12
  13. 名称13
  14. 名称14
  15. 名称15
  16. 姓名16
  17. 名称17
  18. 姓名18
  19. 名称19
  20. 姓名20
$i=1
while ($stmt->fetch()) {
       if($i%5==0){
          $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
       }
$i++;
    }