我有一个显示<li>
的循环,我需要在第一个,然后每六个<li>
示例:
while ($db_field = mysql_fetch_assoc($result)) {
<li (if mod of 6 add class="something")>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li class="something">Six</li>
<li>Seven</li>
}
...
答案 0 :(得分:4)
使用modulus %
运算符非常简单:
$counter = 0;
while ($r = mysql_fetch_assoc($res) {
$isSixthsLi = (bool) (($counter++) % 6 == 0);
echo $isSixthsLi ? '<li class="something">' : '<li>';
echo htmlentities($r['content']);
echo '</li>';
}
($counter++) % 6
表达式表示 $ counter的余数除以6,然后递增$ counter 。如果余数为零(对于0,6,12,...都是如此),则使用类名打印<li>
,否则不打印。
答案 1 :(得分:1)
我认为这个列表是动态的,然后你可以使用
<?php
$i=0;
foreach ($in as $v){
$i++;
$class = (!$i%6) ? "something : ""; ?>
<li class="<?=$class?>"><?=$v?></li>
<?php } ?>
注意:我使用了简写标记<?=
,您可以使用<?php echo
代替