【问题标题】:object foreach loop iterate only even values对象 foreach 循环仅迭代偶数值
【发布时间】:2012-02-21 19:54:54
【问题描述】:

基本上我有一组对象值,我想在 2 个单独的 html 列表中呈现

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

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

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

【问题讨论】:

标签: php


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

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

    $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
    

    【讨论】:

    • 是的,每个值 $value->id 都有一个 id,这样会更简单
    • @user1019144 对象的属性名称是什么并不重要。我在告诉$values 哪里是普通数组?还是对象或关联数组?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2015-07-25
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多