Php 当循环每增加X倍时,在循环内计数

Php 当循环每增加X倍时,在循环内计数,php,loops,Php,Loops,我真的不知道如何解决这个问题,但我目前有一个while循环输出 假设有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... 我试着在整个循环中计数,比较

我真的不知道如何解决这个问题,但我目前有一个while循环输出
  • 假设有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>";              
        }
    
    while($stmt->fetch()){
    $HTML.=“$count名称”;
    }
    
    为了让这更清楚…基本上我希望有一个计数器变量运行。从1开始,但在while循环中每隔五次,我想将这个count变量增加一个。

    $I=1
    
    $i=1
    while ($stmt->fetch()) {
    
           if($i%5==0){
              $HTML .= "<li data-id='$id' data-name='$name'>$count Name</li>";              
           }
    $i++;
        }
    
    而($stmt->fetch()){ 如果($i%5==0){ $HTML.=“$count名称”; } $i++; }
    $i=1
    而($stmt->fetch()){
    如果($i%5==0){
    $HTML.=“$count名称”;
    }
    $i++;
    }
    
    $count=$rows=0;
    而($stmt->fetch()){
    如果($rows%5==0)
    $count++;
    $rows++;
    $HTML.=“$count名称”;
    }
    
    $count=$rows=0;
    而($stmt->fetch()){
    如果($rows%5==0)
    $count++;
    $rows++;
    $HTML.=“$count名称”;
    }
    
    您可以使用
    数组填充()

    
    

    例如:

    $count = 0;
    
    while ($stmt->fetch() && $count++) {
        $HTML .= implode('', array_fill(0, 5, "<li data-id='$id' data-name='$name'>$count Name</li>"));
    }
    
    $count=0;
    而($stmt->fetch()&&&$count++){
    $HTML.=内爆(“”,数组填充(0,5,“$count名称”);
    }
    
    另一个演示(ignite.io可能无法保存):


    您可以使用
    数组填充()
    (psuedo代码):

    
    

    例如:

    $count = 0;
    
    while ($stmt->fetch() && $count++) {
        $HTML .= implode('', array_fill(0, 5, "<li data-id='$id' data-name='$name'>$count Name</li>"));
    }
    
    $count=0;
    而($stmt->fetch()&&&$count++){
    $HTML.=内爆(“”,数组填充(0,5,“$count名称”);
    }
    
    另一个演示(ignite.io可能无法保存):



    用于($i=1;$i
    用于($i=1;$i您的问题不清楚php是否有模运算符?loopno mod 5+1将用于从0开始的索引。使用两个计数器,一个计数器最多计数5,每次它达到5,您就递增第二个计数器。然后在输出中包含第二个计数器……或者使用一个计数器,然后将其除以5,并在中添加1.5个答案不到2分钟,虽然大多数都是错的…但仍然!用一个不清楚的问题很难做出正确的答案你的问题不清楚php是否有一个模运算符?loopno mod 5+1将用于从0开始的索引。使用两个计数器,一个计数器最多计数5,每次它达到5,你就增加第二个计数器。然后包括s在输出中使用第二个计数器…或者使用一个计数器,然后将其除以5,在不到2分钟的时间内添加1.5个答案,尽管大多数答案都是错误的…但仍然!如果问题不清楚,很难做出正确的答案移动
    $rows++;
    在if语句之后移动似乎有效!谢谢,所以这是预期的结果。我没想到。Movif语句后面的ing
    $rows++;
    似乎有效!ThanksAh,所以这是预期的结果。我没有预料到。这种方法忽略了重要的
    $stmt->fetch()
    。很可能每次迭代都会使用该db记录中的某个唯一值。对。好吧,值得一试。这种方法忽略了重要的
    $stmt->fetch()
    。很可能每次迭代都会使用该db记录中的某个唯一值。对。好吧,值得一试。
    $count = 0;
    
    while ($stmt->fetch() && $count++) {
        $HTML .= implode('', array_fill(0, 5, "<li data-id='$id' data-name='$name'>$count Name</li>"));
    }
    
    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>";
        }
    }