@ne_mo

Как присовить класс .active к первому элементу массива с помощью цикла foreach?

Детально, у меня есть многомерный массив это навигационное меню
$menu = [
    ['link'=>'Домой', 'href'=>'index.php'],
    ['link'=>'Новости', 'href'=>'news.php'],
    ['link'=>'Оплатить', 'href'=>'pay.php'],
    ['link'=>'О нас', 'href'=>'about.php'],
    ['link'=>'Контакты', 'href'=>'contact.php']
];


Я его вывожу через цикл foreach

foreach($menu as $val){
    echo "<li> <a href={$val['href']}>{$val['link']}</a> </li>";
}


Но хочу прописать чтобы первому элементу, главной страннице присваивался класс .active для присвоения css активной страницы.
  • Вопрос задан
  • 2090 просмотров
Решения вопроса 1
@Wol_fi
php, js, mysql, highload
Ну если по простому то можно так:
$first = true;
foreach($menu as $val){
    echo "<li " . ($first ? ' class="active"' : '') . "> <a href={$val['href']}>{$val['link']}</a> </li>";
    if ($first) {
       $first = false;
    }
}

Или так:
foreach($menu as $val){
    echo "<li " . ($menu[0]['href'] == $val['href'] ? ' class="active"' : '') . "> <a href={$val['href']}>{$val['link']}</a> </li>";
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Serg89
@Serg89
Изучаю. Читаю.
<?php foreach ($menu as $key => $value) : ?>
	<li <?if (!$key) :?>class="active"<?php endif;?>><a href={$val['href']}>{$val['link']}</a></li>
<?php endforeach ;?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы