if和foreach出错

1 php for-loop if-statement

我在foreach中使用if条件,但if条件仅适用于第一个值.

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

仅在条件为假的情况下为第一个值,对于所有其他值,仅为第一个值.所以这里有人对这个问题有任何想法.

Bar*_*mar 6

您需要$selectedelse子句中设置为空字符串.否则,它将从前一次迭代中持续:

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

  • 或者只是在循环开始时定义`$ selected =''`,删除else条件. (3认同)