0
$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
....

などですが、それを達成する方法を理解することはできません。

4

3 に答える 3

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 />";
    }
}
于 2012-12-21T19:38:07.850 に答える
2

モジュロ演算子を使用できます。基本的に、除算の残りを返します。たとえば、$i が 20 になると、この場合 (20/3=18) の modulo は 2 になり、残りの部分は 2 になります。$i が 21 になると、3 で完全に除算されるため、何も残らないため、21%3 は 0 になります。このようにして、3 回ごとに何かを実行することがわかります。

これを試して:

$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>';
于 2012-12-21T19:37:01.887 に答える