Печатать класс внутри echo один раз в foreach и игнорировать в других циклах - PullRequest
0 голосов
/ 28 августа 2018

у меня есть foreach вот так

EDIT

foreach ($lists as $list) {
    echo '<li class="">'. $list .'</li>';
}

как я могу добавить активный первый класс li один раз, как это class="active" и другие циклы показывают с empy class "default"

?? спасибо всем за помощь 101

Ответы [ 5 ]

0 голосов
/ 28 августа 2018

Вы должны наложить какое-то условие на значение или индекс массива. Предположим, мы должны поместить активный класс в первый элемент

// track array by its index and first element has index 0
foreach($list as $index => $list)
{
   // if index is 0 then put active class to list with ternary condition
   echo '<li class="'.(($index==0)?'active':'').'">'. $list.'</li>';
}
0 голосов
/ 28 августа 2018

Если вы используете Laravel 5.3 или выше, вы можете использовать это

@foreach($lists as $list)
<li @if($loop->iteration == 1) class="active" @endif>{{ $list }}</li>
@endforeach
0 голосов
/ 28 августа 2018

Попробуйте это

$counter = 0;
foeach($lists as $list){
if($counter==0)
 echo '<li class="active">'. $list .'</li>';
else
 echo '<li class="">'. $list .'</li>';
   $counter++;
}
0 голосов
/ 28 августа 2018

Если вы хотите установить активный первый <li> элемент, то вы можете сделать это следующим образом.

foeach($lists as $key => $list){
       if($key == 0){
           echo '<li class="active">'. $list .'</li>';
       }else{
        echo '<li class="">'. $list .'</li>';
      }
}
0 голосов
/ 28 августа 2018

Вы могли бы сделать что-то вроде этого

$active = false;
foreach($lists as $list){
    echo '<li class="'.(!$active ? 'active' : '').'">'. $list .'</li>';
    $active = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...