提问者:小点点

循环每10次迭代递增int var[重复]


我正在构建一个长的虚拟数据查询。我有一个for循环运行几千次,在每个循环中,它会向查询添加一行,增量变量用于虚拟文件名、1.png、2.png等。我还需要增加一个单独的外键id,但它只需要每10次循环迭代一次。有人能帮忙吗?谢谢。

$var = '';
for($i=0;$i<100;$i++){
    $path = '/test' . $i . '.pdf';
    $mess = 'Test message '. substr(md5($i), 0, 10);
    $did = 0;//How to increment this var by 1 every 10 iterations?
    $var .= "INSERT INTO `message` (`design_id`, `path`, `message`) VALUES ('$did', '$path', '$mess');"."<br />";
}
echo $var;

共3个答案

匿名用户

$i=10

例子:

for ($i=0; $i<100; $i+=10) {
}

匿名用户

您可以使用模数运算符:

$did = 0;
for($i=0;$i<100;$i++){
    $did += $i % 10 == 9;
}

表达式$i%10从0开始,增加到9(10-1),然后无限期地“环绕”$did每次计算为9时,即每10次迭代增加一次。

有趣的是,您可以使用[0,9]范围内的任何值进行比较,它仍然会以相同的速率增加$did;区别在于第一次增加的时间。通过选择9次,在第10次、第20次等迭代中增加。如果选择0,则增加将发生在1、11、21等。

最后,如果这种技术是新的,比如说,使用额外的帕伦斯可能会感觉更舒服

$did += ($i % 10 == 9);

或者甚至是一个独立的if语句。

匿名用户

分而治之。

$did=地板(i/10);