我的应用程序生成0到1000之间的随机整数。
我有5个范围:0-50
,51-250
,251-500
,501-700
,701-1000
。 (请注意,范围大小不相等。)
我将分别称这些范围:“0”,“50”,“250”,“500”,“700”(将这些名称存储在我的数据库中)。
我知道我可以做以下事情:
if ($number > 700 && $number <=1000)
$num_range='700';
else if...
......等等。
但是有更有效的方法吗?
提前多多感谢。此致
答案 0 :(得分:6)
高效利用elseif
:
if($number <= 50)
$num_range='0';
elseif($number <= 250)
$num_range='50';
elseif($number <= 500)
$num_range='250';
elseif($number <= 700)
$num_range='500';
elseif($number <= 1000)
$num_range='700';
...
答案 1 :(得分:6)
$ranges = array(0,50,250,500,700,1000....);
$number = ....;
foreach($ranges as $range){
if ($number>$range)
continue;
else
return prev($ranges);
}
答案 2 :(得分:4)
$startPoints = array(700, 500, 250, 50);
$num_range = 0;
foreach ($startPoints as $from) {
if ($number >= $from) {
$num_range = $from;
break;
}
}
答案 3 :(得分:1)
$range[0] = range(0, 49);
$range[50] = range(50, 249);
$range[250] = range(250, 499);
....
然后做:
foreach($range as $r => $vals){
if(in_array($number, $vals)){
echo "Number is in range: $r";
}
}