2013-02-20 3 views
0

Как я могу прерывать цикл и добавлять элемент html на каждом двух итерациях? Может ли простой foreach сделать что-то в SPL?Как добавить элемент html для каждого из двух элементов с помощью foreach или SPL?

<?php foreach($items as $index=>$item): ?> 
    <li>$item->title</li> 
    <?php if($index + 1 = 2):?> 
    <div class="divider"></div> 
    <?php endif;?> 
<?php endforeach;?> 

HTML результат,

<li>title 1</li> 
<li>title 2</li> 
<div class="divider"></div> 
<li>title 3</li> 
<li>title 4</li> 
<div class="divider"></div> 
<li>title 5</li> 
<li>title 6</li> 
<div class="divider"></div> 

РЕДАКТИРОВАТЬ:

<li>title 1</li> 
<li>title 2</li> 
<li>title 3</li> 
<div class="divider"></div> 
<li>title 4</li> 
<li>title 5</li> 
<div class="divider"></div> 
<li>title 6</li> 

ответ

2

Для получения этого результата:

<li>title 1</li> 
<li>title 2</li> 
<div class="divider"></div> 
<li>title 3</li> 
<li>title 4</li> 
<div class="divider"></div> 
<li>title 5</li> 
<li>title 6</li> 
<div class="divider"></div> 

ли это с модулем 2:

<?php 
foreach($items as $index=>$item) { 
    if ($îndex % 2 = 0) { 
?> 
<?php // <!-- ADD HTML HERE !> ?> 
<li>$item->title</li> 
<?php 
    } else { 
?> 
<li>$item->title</li> 
<?php 
    } 
} 
?> 

Для этого результата:

<li>title 1</li> 
<li>title 2</li> 
<li>title 3</li> 
<div class="divider"></div> 
<li>title 4</li> 
<li>title 5</li> 
<div class="divider"></div> 
<li>title 6</li> 

ли это с пропуская первый индекс и модуль 2:

<?php 
foreach($items as $index=>$item) { 
    if ($îndex != 0 && $îndex % 2 = 0) { 
?> 
<?php // <!-- ADD HTML HERE !> ?> 
<li>$item->title</li> 
<?php 
    } else { 
?> 
<li>$item->title</li> 
<?php 
    } 
} 
?> 
+0

Спасибо Ману за ответ. но он дает результат в моем редактировании выше ... могу ли я спросить - что это значит «$ index% 2»? – laukok

+0

Я добавил 1 к условию, чтобы получить правильный результат. Я хочу '($ index + 1)% 2 == 0' – laukok

+0

http://www.php.net/manual/en/language.operators.arithmetic.php: не нужно добавлять 1 к '$ index'. Вам нужно получить информацию о модуле оператора '%'. Вы знаете этого оператора? Я не могу объяснить больше здесь, это может быть слишком долго и не подходит на этом форуме. – Manu

3
<?php foreach($items as $index=>$item){ ?> 

<li>$item->title</li> 

if ($index != 0 && $index%2 == 0){?><div class="divider"></div><?php} 

}?> 
+0

Спасибо за ответ. но он дает результат в моем редактировании выше ... что это означает '$ index% 2'? – laukok

+0

Я добавил 1 к условию, чтобы получить правильный результат. Я хочу '($ index + 1)% 2 == 0' – laukok