1

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 ループには非常に役に立ちません。これを行う適切な方法はありますか?

4

5 に答える 5

7
if ( $i==0 || ($i+1)%3 == 0 )
{
    //do stuff
}

これが行うことは、次のインデックスに移動し、それを 3 で割り、余りがあるかどうかを確認することです。何もない場合は、現在のインデックスが 3 で割り切れる数よりも 1 小さいことを意味します。

于 2012-07-10T17:22:41.593 に答える
0
if(($i+1)%3 == 0){
    //do something
}

%演算子はモジュラス演算子と呼ばれ、除算の余りを返します。

于 2012-07-10T17:24:55.140 に答える
0

したがって、最も効果的な方法は

if ($i % 3 === 2) {
  //do stuff
}

それは価値に物事を追加しないので$i、しかしすべての答えは本質的に正しいです!

于 2012-07-10T17:26:31.940 に答える
0

モジュラス演算子を使用します。

if (! (($i+1) % 3) ) {

$i+1を 3 に割ると、余りがない場合、結果は 0 になります。次に、ブール値notが必要です。

0 も一致させたい場合 (例では使用していますが、説明と一致しないため)、. で特別なケースにする必要があり||ます。

于 2012-07-10T17:22:19.663 に答える
0

そのためにモジュロを使用したい:

(1 % 3) == 1
(2 % 3) == 2
(3 % 3) == 0
(4 % 3) == 1

幸運を

モジュロは、割り算の余りを教えてくださいと言っているのと同じことです。したがって、1 / 3 は 0 余り 1 に等しく、以下同様です。

于 2012-07-10T17:22:33.630 に答える