2016-09-18 3 views
1

Предположим, у меня есть 56 записей в моей базе данных. Я использую FOR LOOP для их отображения.
Я хочу добавить div после 10 записей каждый раз.Как разбить цикл foreach или цикл на 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> 

Я хочу добавить <div> после того, как 10 записей каждый раз

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

Я считаю, тег CSS здесь неактуальен ... – Aziz

ответ

5

Вы можете использовать modulus operator для этого.

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

Если вы хотите, чтобы предотвратить дубликат закрытия открытого ДИВ в случае точного разделения, вы можете изменить свой код:

<?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>"; 
} 
Смежные вопросы