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

时间:2013-03-21 05:11:57

标签: php loops

我不确定如何处理这个问题,但我目前有一个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,如果没有则增加它,但我知道这不正确。似乎无法找出最佳解决方案。

 while ($stmt->fetch()) {

          $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
    }

试图让这个更清楚...基本上我想有一个计数器变量运行。从1开始,但每隔五次通过while循环,我想将此计数变量增加一个。

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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

<?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>"));
}

另一个演示(ignite.io可能无法保存):

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

答案 2 :(得分:0)

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.   
  3. 姓名2
  4.   
  5. 姓名3
  6.   
  7. 姓名4
  8.   
  9. 姓名5
  10.   
  11. 姓名6
  12.   
  13. 姓名7
  14.   
  15. 姓名8
  16.   
  17. 姓名9
  18.   
  19. 姓名10
  20.   
  21. 姓名11
  22.   
  23. 姓名12
  24.   
  25. 姓名13
  26.   
  27. 姓名14
  28.   
  29. 姓名15
  30.   
  31. 姓名16
  32.   
  33. 姓名17
  34.   
  35. 姓名18
  36.   
  37. 姓名19
  38.   
  39. 姓名20
  40.   

答案 3 :(得分:-1)

$i=1
while ($stmt->fetch()) {

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