我不确定如何处理这个问题,但我目前有一个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循环,我想将此计数变量增加一个。
答案 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);
?>
如:
$count = 0;
while ($stmt->fetch() && $count++) {
$HTML .= implode('', array_fill(0, 5, "<li data-id='$id' data-name='$name'>$count Name</li>"));
}
另一个演示(ignite.io可能无法保存):
答案 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
- 姓名2
- 姓名3
- 姓名4
- 姓名5
- 姓名6
- 姓名7
- 姓名8
- 姓名9
- 姓名10
- 姓名11
- 姓名12
- 姓名13
- 姓名14
- 姓名15
- 姓名16
- 姓名17
- 姓名18
- 姓名19
- 姓名20
醇>
答案 3 :(得分:-1)
$i=1
while ($stmt->fetch()) {
if($i%5==0){
$HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";
}
$i++;
}