确定数字范围的最有效方法是什么?

时间:2012-08-06 17:28:15

标签: php

我的应用程序生成0到1000之间的随机整数。

我有5个范围:0-5051-250251-500501-700701-1000。 (请注意,范围大小不相等。)

我将分别称这些范围:“0”,“50”,“250”,“500”,“700”(将这些名称存储在我的数据库中)。

我知道我可以做以下事情:

if ($number > 700 && $number <=1000)
       $num_range='700';

else if... 

......等等。

但是有更有效的方法吗?

提前多多感谢。此致

4 个答案:

答案 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";
    } 
}