@mrzgt

Как задать классы для элементов foreach?

Есть массив который выводит n количество элементов, нужно 1, 2, 3, 4 элементам задавать разные классы и так по кругу, не могу понять как это сделать для 4 элементов
<?php $k = 1 ?>
 <?php foreach ($products as $product) { ?>
<?php $k++ ?>

<?php if ($k ______) { ?>
<?php $class = '1'; ?>

<?php } elseif ($k _____ ) { ?>
<?php $class = '2'; ?>

<?php } elseif ($k _____) { ?>
<?php $class = '3'; ?>

<?php } elseif ($k ___ ) { ?>
<?php $class = '4'; ?>

<div class="<?php echo $class; ?>
......
</div>	

<?php } ?>
  • Вопрос задан
  • 190 просмотров
Решения вопроса 2
Так подойдёт?:
<?php
    $classes = [
      'class 4',
      'class 1',
      'class 2',
      'class 3',
    ];

    $k = 1;
?>
<?foreach ($products as $product) {?>
    <? $class = $classes[$k % 4]; ?>
    <div class="<?= $class ?>">
        ...
    </div>
    <? $k++; ?>
<?}?>
Ответ написан
Комментировать
@karminski
Senior React.JS Developer
foreach ($products as $index => $product) {
    if ($index % 4) { // деление нацело на 4
        $class = 'ClassName4';
    } else if ($index % 3) { // деление нацело на 3
        $class = 'ClassName3';
    } ...
}


Update: обязательно проверять деление нацело "в обратном порядке"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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