PHPでどのように数値を分割し、残りを除外しますか?
PHP 7には、intdiv
という名前の新しい組み込み関数があります。
例:
$result = intdiv(13, 2);
この例の$result
の値は6
になります。
この関数の完全なドキュメントは PHPドキュメント にあります。
最も実用的な目的のために、受け入れられた答えは正しいです。
ただし、整数の幅が64ビットのビルドでは、可能な整数値のすべてが倍精度浮動小数点数として表現できるわけではありません。詳細については、受け入れられた回答に関する私のコメントを参照してください。
のバリエーション
$n = ($i - $i % $m) / $m;
(別の回答の下にあるKingCrunchのコメントから取られたコード)は、望ましい丸め動作に応じてこの問題を回避します(モジュラス演算子の結果が負になる可能性があることに注意してください)。
$result = intval($a / $b)
のような上記の決定に加えて、1つの特定のケースがあります。
2の累乗($b
は2 ^ N
)ビット単位の右シフト演算を使用できます。
$result = $a >> $N;
ここで、$ Nは32ビットオペレーティングシステムでは1〜32、64ビットシステムでは64です。
$ bの場合、2のべき乗であると判断されるのが最も速いため、便利な場合があります。
そして、後方への(オーバーフローのため注意してください!) 2のべき乗で乗算する操作があります:
$result = $a << $N;
これが誰かにも役立つことを願っています。