Как добавить только одни данные без его повторения в foreach, который имеет несколько повторений?
у меня есть foreach
, который повторяет элементы li
в соответствии со значениями переменной $channels
, если быть точным, эта переменная имеет данные, разделенные запятыми, для каждого данных, разделенных запятыми, повторяется, пример: $channels="dato,dato2,dato3";
наблюдается 3 данные, разделенные запятыми, поэтому foreach
будет повторять элемент 3 разаli
.
таким образом, следующий PHP foreach
повторяет элементы три раза li
.
я хочу добавить класс к элементу li
используя следующую переменную: $myclass = "active";
но без повторения во всех li
из 3 элементов li
, которые должны быть сгенерированы, я просто хочу, чтобы в первом li
был добавлен класс или то же самое, что и только в первом li я знаю, чтобы напечатать переменную $myclass
, как я могу это сделать?
<?php
foreach ($channels as $key => $value)
{
?>
<li class="item <?php echo $myclass;?>"><span data-target="#<?PHP echo $key;?>">Option <?php echo $key;?></span></li>
<?php
}
?>
1 answers
Вы можете выполнить проверку во время печати класса.
Что-то вроде
<?php echo $key === 0 ? $myclass : ''; ?>
Полный пример:
<?php
foreach ($channels as $key => $value)
{
?>
<li class="item <?php echo $key === 0 ? $myclass : ''; ?>"><span data-target="#<?PHP echo $key;?>">Option <?php echo $key;?></span></li>
<?php
}
?>
Это предполагает, что переменная $ channels является массивом с числовыми ключами.
В случае, если $channels является массивом с ассоциативными ключами:
<?php
$index = 0;
foreach ($channels as $key => $value)
{
?>
<li class="item <?php echo $index === 0 ? $myclass : ''; ?>"><span data-target="#<?PHP echo $key;?>">Option <?php echo $key;?></span></li>
<?php
$index++;
}
?>