如何使用foreach循环并在固定位置设置小变化?

时间:2016-09-01 22:17:14

标签: php html mysql arrays

我已经在这个论坛上搜索了很长时间,但我找不到解决这个问题的方法。

我需要为12个元素创建一个foreach循环,但其中3个元素具有不同的类。

这是我到目前为止所做的:

$result = $db->query("SELECT `views` FROM `views` WHERE `views` = `id` AND DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= date(`views`.`time`) ORDER BY `id` DESC LIMIT 12");

while($row = $result->fetch_assoc()) {
    $users[] = $row;
}

$output .= '<ul>';
foreach($rows as $row) {
    $output .= '<li class="grid__item"></li>';
}
$output .= '<ul>';

return $output;

如何在2位,8位和12位向li个对象添加不同的类?

输出如下内容:

<ul>                    
    <li class="grid__item"></li>
    <li class="grid__item grid__item--deco grid__item--deco-1"></li>
    <li class="grid__item"></li>
    <li class="grid__item"></li>
    <li class="grid__item"></li>
    <li class="grid__item"></li>
    <li class="grid__item"></li>
    <li class="grid__item grid__item--deco grid__item--deco-2"></li>
    <li class="grid__item"></li>
    <li class="grid__item"></li>
    <li class="grid__item"></li>
    <li class="grid__item grid__item--deco grid__item--deco-3"></li>
</ul>

2 个答案:

答案 0 :(得分:1)

只需使用key的{​​{1}},然后在循环块内设置其他类。只需添加foreach条件:

if

答案 1 :(得分:1)

如果他们总是2岁,8岁和12岁:

$rowcount = 1;
foreach($rows as $row) {
    if ($rowcount == 2 || $rowcount == 8 || $rowcount == 12) {
        $output .= '<li class="grid__item"></li>';
    }
    else {
        $output .= '<li class="OTHER CLASS"></li>';
    }
    $rowcount ++;
}

似乎对我来说很笨,但也许这会奏效。