在 for 循环中,我需要添加一些仅在循环位于 [(3 的倍数) 减 1] 时输出的 HTML。
例如,我可以做的是:
for($i=0; $i<count($imagearray); $i++)
{
if($i=="0" || $i=="2" || $i=="5" || $i=="8" || $i=="11")
{
echo 'string';
}
}
但这对于大的 for 循环来说不是很优雅而且非常无用,有没有合适的方法来做到这一点?
在 for 循环中,我需要添加一些仅在循环位于 [(3 的倍数) 减 1] 时输出的 HTML。
例如,我可以做的是:
for($i=0; $i<count($imagearray); $i++)
{
if($i=="0" || $i=="2" || $i=="5" || $i=="8" || $i=="11")
{
echo 'string';
}
}
但这对于大的 for 循环来说不是很优雅而且非常无用,有没有合适的方法来做到这一点?
if ( $i==0 || ($i+1)%3 == 0 )
{
//do stuff
}
这样做的目的是转到下一个索引,将其除以 3,然后查看是否有余数。如果没有,则表示当前索引比可被 3 整除的数字小一
使用模运算符。
if (! (($i+1) % 3) ) {
如果$i+1
除以 3 没有余数,结果将为零。那么你只需要一个布尔值not。
如果您也想匹配 0 (因为您在示例中使用它,但它与您的描述不匹配),那么您必须使用||
.
您想为此使用模数:
(1 % 3) == 1
(2 % 3) == 2
(3 % 3) == 0
(4 % 3) == 1
祝你好运
模数就是说,给我除法的余数。所以 1 / 3 等于 0 余数 1,依此类推。
if(($i+1)%3 == 0){
//do something
}
% 运算符称为模运算符,它返回除法的余数。
最优雅的方法是
if ($i % 3 === 2) {
//do stuff
}
因为它不会增加$i
价值,但所有答案基本上都是正确的!