2013-02-20 26 views
0

如何中斷循環並在每個兩個迭代處添加html元素?一個簡單的foreach可以做SPL嗎?如何使用foreach或SPL爲每兩個項目添加html元素?

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

謝謝你Manu的答案。但是它在上面的編輯中產生了結果......請問 - '$ index%2'是什麼意思? – laukok 2013-02-20 17:19:24

+0

我給條件添加了1以獲得我想要的正確結果'($ index + 1)%2 == 0' – laukok 2013-02-20 17:25:32

+0

http://www.php.net/manual/zh/language.operators.arithmetic.php:不需要在'$ index'中加1。您需要獲取有關模數運算符'%'的信息。你知道這個運營商嗎?我無法在這裏解釋更多,在這個論壇上可能太長,也不適合。 – Manu 2013-02-20 18:48:42

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 2013-02-20 17:18:35

+0

我添加了1的條件,以得到正確的結果我想'($ index + 1)%2 == 0' – laukok 2013-02-20 17:25:09

相關問題