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

ループ全体でカウントを試み、その数を比較して 5 未満かどうかを確認し、そうでない場合はそれを増やしてみましたが、それが正しくないことはわかっています。最善の解決策を見つけられないようです。

 while ($stmt->fetch()) {

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

これをより明確にするために...基本的には、カウンター変数を実行したいと思います。1 から開始しますが、while ループを 5 回実行するごとに、このカウント変数を 1 ずつ増やしたいと考えています。

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 に答える