在for循环中,我需要添加一些HTML,只有当循环在[(3的倍数)减1]时输出。
例如,我能做的是:
for($i=0; $i<count($imagearray); $i++)
{
if($i=="0" || $i=="2" || $i=="5" || $i=="8" || $i=="11")
{
echo 'string';
}
}
但这对于大型for循环来说并不是非常优雅且无用,是否有正确的方法可以做到这一点?
答案 0 :(得分:6)
if ( $i==0 || ($i+1)%3 == 0 )
{
//do stuff
}
这将做什么,是转到下一个索引,除以3,看看是否有余数。如果没有,那么这意味着当前索引比可被3整除的数字少一个
答案 1 :(得分:0)
if (! (($i+1) % 3) ) {
如果$i+1
除以3而没有余数,则结果为零。然后你只需要一个布尔而不是。
如果你想匹配0(因为你在你的例子中使用它,但它与你的描述不符),那么你必须使用||
特殊情况。
答案 2 :(得分:0)
你想使用模数:
(1 % 3) == 1
(2 % 3) == 2
(3 % 3) == 0
(4 % 3) == 1
祝你好运
模数和说法是一样的,给我剩下的一个部门。所以1/3等于0余数1,依此类推。
答案 3 :(得分:0)
if(($i+1)%3 == 0){
//do something
}
%运算符称为模运算符,并返回除法的余数。
答案 4 :(得分:0)
因此,最优雅的方法是
if ($i % 3 === 2) {
//do stuff
}
因为它没有向$i
值添加内容,但所有答案都基本正确!