PHP For循环中的If语句不起作用

PHP For循环中的If语句不起作用,php,Php,我正在尝试将CSS类“selected”添加到创建的第一个accordionButton div中。为什么这样不行 // Create nav from database $chapter_array = get_chapter_names(); for ($i=0; $i < sizeof($chapter_array); $i++) { if($i == 0) {

我正在尝试将CSS类“selected”添加到创建的第一个accordionButton div中。为什么这样不行

// Create nav from database
                $chapter_array = get_chapter_names();

                for ($i=0; $i < sizeof($chapter_array); $i++) { 
                    if($i == 0) {
                        $selected = 'selected';
                    }
                    echo '<div class="accordionButton '.$selected.'">'.$chapter_array[$i].'</div>';

                    $page_id_array = get_page_ids($i);

                    echo '<div class="accordionContent">';
                    for ($j=0; $j < sizeof($page_id_array); $j++) { 
                        $page_name = get_page_name($page_id_array[$j]);
                        echo '<a href="?page_id='.$page_id_array[$j].'">'.$page_name.'</a><br />';
                    }
                    echo '</div>';
                }
//从数据库创建导航
$chapter\u array=get\u chapter\u names();
对于($i=0;$i”;
}
回声';
}

您从未在第一个div之后设置
$selected
,因此这会将该类添加到每个div,因为
$selected
始终包含字符串
'selected'

您可以将其设置为if语句之前的空字符串:

$selected = '';
if($i == 0) {
    $selected = 'selected';
}
如果你更喜欢这个,你也可以把它写成一个很好的三元表达式:

$selected = $i == 0 ? 'selected' : '';

“它不起作用”是相当模糊的。始终提供一个简单的解释,说明它是如何工作的。一条错误信息,发生了什么,等等。这是一个很好的观点。它不起作用,因为所有accordionButton div都被类“选中”。以下@PaulP.R.O的正确答案。谢谢当然,谢谢。我会尽快给你正确答案(限制10分钟)。@chris_mac谢谢:)我很高兴能帮上忙。肯德尔也是正确的。如果你说问题出在哪里,而不是仅仅说它不起作用,那么这会更容易发现。下次记住:)