2010-03-26 43 views
3

運行foreach循環有兩個foreach循環來顯示一些數據, 但我想用一個單一的foreach數據庫結果的基礎。我如何與三元條件

表示是否存在從數據庫返回的任何行然後 forach($first as $fk=>$fv)否則應該執行 foreach($other as $ok)應該執行。 I M unsing低於三元操作這給解析錯誤

$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 } ?> 

請建議我如何通過三元運算符或任何其他的想法來處理這種情況。

由於

回答

4

使用條件操作符來選擇陣列使用,然後使用$fv作爲值,而不是爲$ok第二個選項。

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

有兩個完全不同的循環由條件和完全不同的變量被選中不會真的是一個好主意,因爲它會導致真正令人困惑的代碼,你會無法確定沒有檢查$n其中$fk$fv$ok

如果您需要做取決於條件,也許是同進功能的代碼段會是一個更好的想法不同的東西?

+0

第二個數組是數組數組是第一個數組是否是關鍵數組的idnetical關聯數組到第二個數組值 那是隻使用'$ ok' – diEcho 2010-03-26 12:56:46

+1

它並不重要 - 你可以使用'$ key => $ val'數值數組的語法也是如此。 – Amber 2010-03-26 13:08:00

+0

我用'array_flip'作爲另一個數組,現在這兩個數組的鍵都用在foreach – diEcho 2010-03-26 13:49:34