我真的不知道如何解决这个问题,但我目前有一个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
- 名称2
- 名称3
- 名称4
- 名称5
- 名称6
- 名称7
- 名称8
- 名称9
- 名称10
- 名称11
- 名称12
- 名称13
- 名称14
- 名称15
- 姓名16
- 名称17
- 姓名18
- 名称19
- 姓名20
$i=1
while ($stmt->fetch()) {
if($i%5==0){
$HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";
}
$i++;
}