Округление до заданного числа PHP

Мне необходимо округлять числа до заданных вручную, например:

131 -> 0
385 -> 500
831 -> 1000
749 -> 500

Каким образом можно такое сделать?


Ответы (1 шт):

Автор решения: teran

для фиксированного числа точек, что-то такое будет

$points = [0,500,1000];    
$data   = [131,385,831,749];

$finder = function($v) use ($points) {
            $min = PHP_INT_MAX;
            $res = null;
            
            foreach($points as $idx => $p){
                if($min > abs($p - $v)){
                    $min = abs($p-$v);
                    $res = $p;
                }
            }
            return $res;
                
          };


foreach($data as $v){
    echo "$v - {$finder($v)}\n";
}
→ Ссылка