代码之家  ›  专栏  ›  技术社区  ›  xkeshav

如何在三值条件下运行foreach循环

  •  3
  • xkeshav  · 技术社区  · 14 年前

    我有两个foreach循环来显示一些数据, 但我想在数据库结果的基础上使用一个foreach。

    意味着如果数据库中有任何行返回,则 forach($first as $fk=>$fv) 否则应执行 foreach($other as $ok) 应该执行。 我在三元运算符下面运行,这会产生解析错误

    $n=$db->numRows($taskData); // databsse results
    
    <?php ($n) ? foreach ($first as $fk=>$fv) : foreach ($other as $ok) 
    { ?>
    <table><tr><td>......some data...</td></tr></table>
    <?php } ?>
    

    请建议我如何通过三元运算符或任何其他方法处理这种情况。

    谢谢

    1 回复  |  直到 12 年前
        1
  •  4
  •   Yacoby    14 年前

    使用条件运算符选择要使用的数组,然后使用 $fv 作为价值而不是 $ok 第二个选择。

    foreach ( ($n ? $first : $other) as $fk => $fv )
    

    由一个条件选择两个完全不同的循环,并使用完全不同的变量,这并不是一个好主意,因为这会导致代码的混乱,因为如果不检查就无法确定 $n 哪一个 $fk , $FV $ OK 被设定。

    如果您确实需要根据条件做一些不同的事情,那么在函数中使用相同的代码段可能是一个更好的主意?