如何根据区间进行判断?

已邀请:

zkbhj - 凯冰科技站长

赞同来自:

function findLevel($val)
{
$arr = [0,10,15,20,25,100];

$feedback = [
'0-1' => '大于等于0°小于10°',
'1-2' => '大于等于10°小于15°',
'2-3' => '大于等于15°小于20°',
'3-4' => '大于等于20°小于25°',
'4-5' => '大于等于25°小于100°'
];

$l = count($arr);
$low = 0;
$high = $l -1;

if($arr[$low] > $val)
{
return '输入值小于最小值';
}

if($arr[$high] < $val)
{
return '输入值大于最大值';
}

$dValue = $high - $low;
while($dValue != 1)
{
$middle = floor(($low + $high) / 2);
if($arr[$middle] > $val)
{
$high = $middle;
}
else
{
$low = $middle;
}
$dValue = $high - $low;
}

$index = $low . '-' . $high;

return $feedback[$index];
}


echo findLevel(14);
echo findLevel(15);
echo findLevel(16);
 
参考:
 
    $middle = floor(($low + $high) / 2);
if($arr[$middle] == $val)
{
return $middle;
}
elseif($arr[$middle] > $val)
{
$high = $middle - 1;
}
else
{
$low = $middle + 1;
}

要回复问题请先登录注册