2016-09-18 2 views
1

データベースに56個のレコードがあるとします。私はそれを表示するためにループを使用しています。
毎回10レコード後にdivを追加したいと思います。foreachループまたはforループを10個のレコードに分割する方法

<?php 
     $a = 56; 
     for($i=0;$i<$a;$i++){ 
      echo "<div>"; 
      echo $i."</br>"; 
      echo "</div>"; 
     } 
?> 

出力:

<div>0</div> 
<div>1</div> 
<div>2</div> 
<div>3</div> 
... 
<div>56</div> 

私はあなたがそのためにmodulus operatorを使用することができます

<div> 
    0 
    1 
    2 
    . 
    9 
    </div> 
    <div> 
    10 
    11 
    . 
    19 
    </div> 
    . 
    . 
    <div> 
    51 
    52 
    . 
    . 
    56 
    </div> 
+0

私は信じていますCSSタグはここでは無関係です... – Aziz

答えて

5

たび<div> 10の後にレコードを追加します。

<?php 
$a = 56; 
echo "<div>"; 
for($i=0;$i<$a;$i++){ 
    echo $i . "<br />"; 

    if (($i+1) % 10 == 0) { 
     echo "</div><div>"; 
    } 
} 
echo "</div>"; 
?> 

なお、ループの数は不明である場合 - それは$aは9になり、あなたの出力がされる可能性があります:

<div> 
    0 
    ... 
    9 
</div><div> 
</div> 

あなたがクローズオープンの重複しないようにするには正確な除算の場合はdiv要素、あなたがあなたのコードを変更することができます:あなたは主にあるいくつかの条件に基づいて開閉divを追加する必要があり

<?php 
$a = 56; 
echo "<div>"; 
for($i=0;$i<$a;$i++){ 
    echo $i . "<br />"; 

    if (($i+1) != $a && ($i+1) % 10 == 0) { 
     echo "</div><div>"; 
    } 
} 
echo "</div>"; 
?> 
+0

それは実際にはもっとコメントです。 –

+0

@ Fred-ii-、正しいですが、コメント内のコードは読みにくく、 '($ i + 1)'はOPが望むものにとって重要です。 – Dekel

+0

最後のdivが正しく閉じられない:-( – Siddhu

2
  1. それは最初の反復
  2. であれば、それは第十反復
  3. であれば、それは最後の反復である場合はここで

はサンプルコードです:

$a = 56; 
for ($i = 0; $i < $a; $i++) { 

    // If it is the first iteration, echo a opening div 
    if ($i == 0) 
    echo "<div>"; 

    // If it is a tenth iteration but not the last one then append a closing and a opening div 
    if ($i != 0 && $i % 10 == 0 && $i != $a - 1) 
    echo "</div><div>"; 

    echo $i. 
    "<br>"; 

    // If it is the last iteration, append a closing div 
    if ($i == $a - 1) 
    echo "</div>"; 
} 
関連する問題