$step=3;
for($i=0;$i<100;$i++){
if($i/$step===(int)($i/$step)){
echo 'START:';
}
echo $i,'-';
if($i>0 and $i/$step===(int)($i/$step)){
echo ':END<BR>';
}
}
我需要这样的结果
START:0-1-2-:END
START:3-4-5-:END
START:6-7-8-:END
....
等等,但无法弄清楚如何设法实现它。
答案 0 :(得分:7)
只是为了演示数组函数的强大功能:
$numbers = range(0, 100);
$chunks = array_chunk($numbers, 3);
foreach($chunks as $chunk) {
echo 'START:', implode('-', $chunk), '-:END<BR>';
}
答案 1 :(得分:5)
$step = 3;
for($i = 0 ; $i < 100; $i++){
if($i % $step == 0){
echo "START:";
}
echo $i."-";
if(($i + 1) % $step == 0){
echo ":END<br />";
}
}
答案 2 :(得分:2)
您可以使用模运算符。它基本上返回你剩余的分裂。例如,当$ i变为20时,在这种情况下其模数将为2(20/3 = 18),其余为2。当$ i变为21时,没有任何东西可以保留,因为它完美地除以3,因此21%3的结果为0.这样你就可以每隔三次找到一次执行某些东西。
试试这个:
$step=3;
echo 'START:';
for($i=0;$i<100;$i++){
if(!($i%$step) and $i>0){
echo ':END<BR>START:';
}
echo $i,'-';
}
echo ':END<BR>';