2014-06-16 44 views
1

我使用,如果在foreach中的條件,但如果條件只是爲第一個值工作。錯誤if和foreach

foreach ($my1 as $my2) { 
    if ($subsubcategory == $my2){ 
     $selected = "selected"; 
    } else { 
    } 
    echo ' <a href="#"class="selectable '.$selected.'"><i class="box"></i>'.$my2.'</a>';} 
} 

只有條件爲false且對於所有其他值爲真的第一個值。所以這裏有人對這個問題有任何想法。

+0

wheres $ subcategory set? $ my的值是多少? – EvilEpidemic

+2

@EvilEpidemic他們重要嗎? –

+0

使其成爲更完整的示例 – EvilEpidemic

回答

6

您需要將$selected設置爲else子句中的空字符串。否則,它將持續以前的迭代:

foreach ($my1 as $my2) { 
    if ($subsubcategory == $my2){ 
     $selected = "selected"; 
    } else { 
     $selected = ""; 
    } 
    echo ' <a href="#"class="selectable '.$selected.'"><i class="box"></i>'.$my2.'</a>';} 
} 
+3

或者在循環開始時簡單地定義'$ selected =''',移除else條件。 – Rikesh

+0

謝謝你的幫助Barmar。你真棒。問題解決 – user3744036