我看到了一些与相关的问题
在php中使用for循环时,如何检查最后一个循环?
java 中增强for循环的最后一次迭代
但我没有得到确切的解决方案,因为在我的情况下,增量和结束极限都是动态。
要求:-我不希望在打印的最后一个元素后面有逗号。
$inc=11;
$end=100;
for($i=1;$i<=$end;$i=$i+$inc){
echo $i==$end?$i:"$i,"; // 1,12,23,34,45,56,67,78,89,100
}
在上面的代码中,我知道最后一个元素($I)将是100($end)。
所以我可以将条件写为$I==$end,但在下面的情况下它不起作用。
$inc=12; // Now $inc is 12
$end=100;
for($i=1;$i<=$end;$i=$i+$inc){
echo $i==$end?$i:"$i,"; // 1,13,25,37,49,61,73,85,97,
}
现在最后一个元素97有逗号,我需要删除它。
提前谢谢。
保持简单:
$numbers = range(0, $end, $inc);
$string = implode(",", $numbers);
echo $string;
你可以在这里看到:https://3v4l.org/BRpnH
;)
您只需使用,
echo $i+$inc>$end?$i:"$i,";
它检查这是否是最后一次可能的迭代。
使用rtrim删除最后一个逗号
$inc = 12; // Now $inc is 12
$end = 100;
$print = '';
for($i=1;$i<=$end;$i=$i+$inc){
$print .= ($i==$end)? $i : "$i,"; // 1,13,25,37,49,61,73,85,97,
}
$print = rtrim($print, ',');
echo $print;
你可以这样做:
<?php
$inc=4;
$end=10;
for($i=1;$i<=$end;$i=$i+$inc){
echo ($i+$inc-1)>=$end?$i:"$i,"; // 1,5,9
}
?>
这段代码在素数的情况下也没有像// 1,13,25,37,49,61,73,85,97,
那样给你结果,总是像// 1,13,25,37,49,61,73,85,97
那样给你的结果,在任何素数后面都没有添加逗号。