PHP颜色中间的每一个盒子

时间:2011-05-31 13:10:06

标签: php html

我的网站上有一个方框列表:

box1    box2    box3
box4    box5    box6
box7    box8    box9

是否有人建议如何标记列表中间的每个方框(box2,box5,box8)?

感谢您的帮助!

这是我的foreach循环:

<?php foreach($usersResult as $user) { ?>
    <div class="box">
        // other stuff here
    </div>
<?php } ?>

4 个答案:

答案 0 :(得分:2)

<?php $i=-1; foreach($usersResult as $user) { ?>
    <div class="box<?php echo ($i % 3 == 0 ? ' middle' : '') ?>">
        // other stuff here
    </div>
<?php $i++; } ?>

解释%(模数运算符)将返回除法的余数。因此,如果您执行$i % 30只要$i可以3(无余数),就可以$i。我在你的循环中添加了-1,我从condition ? value_if_true : value_if_false开始,因为我们不需要每个第三个元素,而是从第二个元素开始的每个第三个元素(在基于0的世界中,第一个)

我还使用了三元运算符({{1}})。

答案 1 :(得分:1)

你应该使用%和for循环,类似这样(未经测试):

for( $i = 0; $i < 10; $i++ ) {
    if( (($i+1)%3) == 0 ) echo 'class="colored"';
}

答案 2 :(得分:1)

像这样:

$i = 0;
foreach($boxes as $box){
    if((($i+2) % 3) === 1){
        //box2, box5, box8
    }
    else{
       //other boxes
    }
    $i++;
}

答案 3 :(得分:0)

如果使用数组,即使是更长的但是很长 - 非Gofl示例。

$boxes = array(1,2,3,4,5,6,7,8,9);

foreach($boxes as $key => $box){
    echo (($key+2)%3==0) ? "<b>" : "";
    echo "(".$key . ' -> ' . $box . ") ";
    echo (($key+1)%3==0) ? "<br/>" : "";
    echo (($key+2)%3==0) ? "</b>" : "";
}

输出:

(0 - > 1)(1 - > 2)(2 - > 3)

(3 - > 4)(4 - > 5)(5 - > 6)

(6 - > 7)(7 - > 8)(8 - > 9)