Gracias Vallu por tu respuesta, como había dicho, ya me había revisado las páginas de funciones de php, pero siguiendo tu consejo, revisando de nuevo round(), en los comentarios me he encontrado con una sorpresa, la funcion roundUpTo, que hace exactamente lo que quiero.
La pongo aqui (y el script para adecuarse a lo que yo necesito) por si alguien más la necesita:
Código PHP:
$desdepvp[0]=0;
$desdepvp[1]=0.1;
$desdepvp[2]=1;
$desdepvp[3]=5;
$desdepvp[4]=20;
$desdepvp[5]=100;
$ajuste[0]=0.0010;
$ajuste[1]=0.05;
$ajuste[2]=0.1;
$ajuste[3]=0.2;
$ajuste[4]=0.5;
$ajuste[5]=1;
$num = 125.21; //numero a redondear
for ($i=0;$i<count($desdepvp);$i++){
if ($num>$desdepvp[$i] && $num<=$desdepvp[$i+1]){
echo "<br>$num <i>(entre ".$desdepvp[$i]." y ". $desdepvp[$i+1] .", ajuste:".$ajuste[$i]." )</i> = " . roundUpTo($num,$ajuste[$i]);
}
}
if ($num>$desdepvp[5]){
echo "<br>$num <i>(mayor que ".$desdepvp[5].", ajuste: ".$ajuste[5].")</i> = ".roundUpTo($num,$ajuste[5]);
}
function roundUpTo($number, $increments) {
$increments = 1 / $increments;
return (ceil($number * $increments) / $increments);
}
Para probar el script simplemente ir dandole distintos valores a la variable $num.
SALUDOS!