在PHP的范围内舍入到最接近的5的倍数

Mor*_*agh 0 php integer if-statement get rounding

我有这个if语句:

if($_GET["angle_1"] > 39) {
    $markers["###ANGLE###"] = "45"; 
} elseif($_GET["angle_1"] > 29 && $_GET["angle_1"] < 40) { 
    $markers["###ANGLE###"] = "35"; 
} elseif($_GET["angle_1"] < 30) {
     $markers["###ANGLE###"] = "25"; 
} else { 
     $markers["###ANGLE###"] = "45"; 
}
Run Code Online (Sandbox Code Playgroud)

是否有更好/更简单的方法来执行此检查,fx使用round将整数舍入到最接近的5,即28 - > 25或34 - > 35等等,并且如果整数小于25,则将始终为25,如果整数高于45,它将始终为45,如果整数介于30和40之间,它将始终为35.

返回的值将用于显示图像.

编辑:

我有3张图片:image_25,image_35和image_45,因此需要圆形.

Gee*_*ert 6

让我们说一下$x这个数字:

$x = 39;
Run Code Online (Sandbox Code Playgroud)

如果你想要最接近的5的倍数(39 - > 40):

$x = round($x / 5) * 5;
Run Code Online (Sandbox Code Playgroud)

如果你想围捕(36 - > 40):

$x = ceil($x / 5) * 5;
Run Code Online (Sandbox Code Playgroud)

如果你想向下舍入(39 - > 35):

$x = floor($x / 5) * 5;
Run Code Online (Sandbox Code Playgroud)

定义后$x,您可以使用以下内容确保其在25-45范围内:

$x = ($x > 45) ? 45 : ($x < 25) ? 25 : $x;
Run Code Online (Sandbox Code Playgroud)