4


2

動的列のステートメントで割り切れるイテレータの場合、php

合計4列(PHP)になる動的列リストを作成しようとしています。 配列をエコーし​​、4つの配列項目がエコーされるたびに、「列」と呼ばれるdivでそれらの4つの配列項目をラップしたいと思います。

基本的に、$ i ++の自己カウントステートメントでこれを行うことができると考えましたが、最初はゼロ以外からカウントを開始するのに問題があります(最初にfor eachループの外側で変数を設定しようとしました)。

とにかく、ya、$ が4で割り切れるかどうかを確認する方法を親切に教えていただければ、$ i が4で割り切れる場合にエコーを挿入できるようになります。 。 しかし、最初に、1でカウントを開始する方法を理解する必要があると考えています($ i ++が4で割り切れる場合は動作します…​ 右??)

3 Answer


12


4で除算すると整数除算になり、商は4倍になります。 おそらく必要なのはhttp://php.net/manual/en/language.operators.arithmetic.php[modulus operator] `%`です。 それはあなたに残りを与えます。 したがって、「$ i」が4の倍数の場合、0になります。

if (($i % 4) == 0) {
  // evenly divisible by 4 logic
}

モジュラスは非効率的です。 2の倍数で除算しているため、ビットを2だけ右にシフトできます。 4で除算するのと同じで、はるかに効率的です。 http://php.net/manual/en/language.operators.bitwise.php [ビットシフト]をご覧ください。


5


%はモジュラス演算子です。 除算後の剰余を返すため、「7%4 == 3」です。

本当に0から始めるべきです。 これは、「0%4 == 0」および「4%4 == 0」…​ そして、最初のアイテムを新しい行にしたいです! したがって、0、4、8などに新しい行が必要です。 1から開始すると、1、2、および3は連続しません。

さらに、すべてのアイテムの行を新しい行の前に閉じることを忘れないでください。

最後に、最後の行を閉じずにループを終了する場合は、ループを終了した後に実行する必要があります。

テーブルでこれを行う方法を示しますが、divをクラスと同じように簡単に使用できます。



0


モジュラス!

$ a%$ b $ aを$ bで割った余り。