对象foreach循环只迭代偶数值

时间:2012-02-21 19:54:54

标签: php

基本上我有一组对象值,我想在2个单独的html列表中进行渲染

我认为最简单的方法是在一个列表中显示均衡,而在另一个列表中只显示奇数

以下是显示单个列表的当前代码

   <ul>
    <?php foreach ($values as $value) : ?>
    <li><?php echo $value->value; ?></li>
    <?php endforeach; ?>
  </ul>

2 个答案:

答案 0 :(得分:4)

试试这个:

<ul>

<?php 
/* read the index key */
foreach ($values as $key => $value) : 

 /* skip the current element if it doesn't have an even index */
 if($key % 2 == 1) continue; 

?>
<li><?php echo $value->value; ?></li>
<?php endforeach; ?>

答案 1 :(得分:1)

您没有指定数组是否具有整数索引。所以我使用一个单独的索引枢轴。这样做。

$v=array();
$index = 1;
foreach ($values as $value){
   $v[($index++)%2][]=$value->value;
}
list ($evens, $odds) = $v;

echo "<ul><li>".implode("</li><li>", $odds)."</li></ul>"; // show list of odds
echo "<ul><li>".implode("</li><li>", $evens)."</li></ul>"; // shows list of even