0

我不太确定如何解决这个问题,但我目前有一个 while 循环输出<li></li>

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

所以输出会是这样的。

 - 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...

我尝试在整个循环中计数并比较数字以查看它是否小于五,如果不是则增加它,但我知道这是不正确的。只是似乎无法找出最佳解决方案。

 while ($stmt->fetch()) {

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

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

4

4 回答 4

4
$count = $rows = 0;
while ($stmt->fetch()) {
    if ($rows % 5 == 0)
        $count++;
    $rows++;
    $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
}
于 2013-03-21T05:16:47.467 回答
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

于 2013-03-21T05:17:52.033 回答
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. 名称 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
于 2013-03-21T05:34:45.973 回答
-1
$i=1
while ($stmt->fetch()) {

       if($i%5==0){
          $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
       }
$i++;
    }
于 2013-03-21T05:16:29.273 回答