Before going into solution we should be familiar with 3 round up functions PHP provides.
floor()
rounds a number DOWN to the nearest integer if necessary.ceil()
rounds a number UP to the nearest integer if necessary.round()
rounds a number to specified precision (number of digits after the decimal point). The precision can also be negative or zero (default). There are 4 rounding modes: PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN, or PHP_ROUND_HALF_ODD.
Round up to nearest 5
$roundedNumber = (ceil($source)%10 === 0) ? ceil($source) : ceil($source/5)*5;
$roundedNumber = (floor($source)%10 === 0) ? floor($source) : floor($source/5)*5;
Round up to nearest 10
$roundedNumber = ceil($source / 10) * 10;
$roundedNumber = floor($source / 10) * 10;
$roundedNumber = round($source, -1, PHP_ROUND_HALF_UP);
$roundedNumber = round($source, -1, PHP_ROUND_HALF_DOWN);