我有两个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 } ?>
请建议我如何通过三元运算符或任何其他想法来处理这种情况。
由于
答案 0 :(得分:4)
使用条件运算符选择要使用的数组,然后使用$fv
作为值,而不是$ok
作为第二个选项。
foreach ( ($n ? $first : $other) as $fk => $fv )
通过条件选择两个完全不同的循环并且具有完全不同的变量并不是一个好主意,因为它会导致真正令人困惑的代码,因为如果不检查$n
哪个$fk
,您将无法确定已设置{1}},$fv
和$ok
。
如果您确实需要根据条件做一些不同的事情,那么函数相同的代码部分会更好吗?