校验数字是平衡的(彼此在1以内)(PHP)


Checking numbers are balanced (within 1 of each other) (PHP)

我知道必须有100种方法可以做到这一点,但有人能推荐"最好/最简单"的方法来检查三个整数变量是否在一个点内吗。

$a = 1; $b = 2; $c = 1;

由于每个变量彼此在1点以内,所需公式应返回TRUE;

有人能提出最好的功能/方法吗。提前感谢

我想在这里多走一步

function scope_check()
{
    // usage: bool scope_check(mixed $range, mixed $val1 [, mixed $val2 [,mixed $...]])
    $array=func_get_args();
    if(sizeof($array)<=1) return false;
    $range=array_shift($array);
    $max=max($array);
    $min=min($array);
    if($max-$min<=$range) return true;
    return false;
}
$valid=scope_check(1, -10, -11, -12, 4, 5 ,7);
if($valid) echo 'valid'; else echo 'not valid';
function scope_check()
{
    $array=func_get_args();
    $max=max($array);
    $min=min($array);
    if($max-$min<=1) return true;
    return false;
}
$valid=scope_check($a, $b, $c);

您可以使用abs()函数:

abs($a-$b) <= 1 && abs($a-$c) <= 1 && abs($b-$c) <= 1