0

如何在每两次迭代中中断循环并添加一个 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>
4

2 回答 2

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

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

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

}?>
于 2013-02-20T16:17:09.123 回答
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
  }
}
?>
于 2013-02-20T16:33:09.380 回答