How does one divide numbers but exclude the remainder in PHP?
Just cast the resulting value to an int.
$n = (int) ($i / $m);
PHP 7 has a new built-in function for this named
$result = intdiv(13, 2);
The value of
$result in this example will be
You can find the full documentation for this function in the PHP documentation.
For most practical purposes, the accepted answer is correct.
However, for builds where integers are 64 bits wide, not all possible integer values are representable as a double-precision float; See my comment on the accepted answer for details.
A variation of
$n = ($i - $i % $m) / $m;
(code taken from KingCrunch’s comment under another answer) will avoid this problem depending on the desired rounding behavior (bear in mind that the result of the modulus operator may be negative).
In addition to decisions above like
$result = intval($a / $b) there is one particular case:
If you need an integer division (without remainder) by some power of two (
2 ^ N) you can use bitwise right shift operation:
$result = $a >> $N;
where $N is number from 1 to 32 on 32-bit operating system or 64 for 64-bit ones.
Sometimes it’s useful because it’s fastest decision for case of $b is some power of two.
And there’s a backward (be careful due to overflow!) operation for multiplying by power of two:
$result = $a << $N;
Hope this helps for someone too.
or you could just do intval(13 / 2)
use modulo in php:
$n = $i % $m;