今天遇到这个了,分享一下我的解决方法,效率不知道,但看起来(我觉得)至少比if else高大上一些
这是写的一个静态方法/**
* @param int $number 数值
* @param array $rangeArray 区间数组 [0=>'大于0',100=>'大于100',1000=>'大于1000']
* @param string $default 不在区间时的默认返回值
* @return string 返回区间对应的value
*/
public static function getNumRange(int $number, array $rangeArray, string $default = ''): string
{
foreach ($rangeArray as $key => $value) {
if ($number >= $key) {
$default = $value;
} else {
break;
}
}
return $default;
}
这样用//定义一个数组
$rangeArray = [
1 => '一钻店铺',
51 => '二钻店铺',
101 => '三钻店铺',
591 => '四钻店铺',
1001 => '五钻店铺',
2001 => '一冠店铺',
4001 => '二冠店铺',
6001 => '三冠店铺',
8001 => '四冠店铺',
10001 => '五冠店铺',
12000 => '大于12000',
];
function getNumRange($number, $rangeArray, $default = '')
{
foreach ($rangeArray as $key => $value) {
if ($number >= $key) {
$default = $value;
} else {
break;
}
}
return $default;
}
echo getNumRange(948,$rangeArray); //四钻店铺