4

我的应用程序生成一个 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... 

... 等等。

但是有没有更有效的方法呢?

提前非常感谢。问候

4

4 回答 4

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';
...
于 2012-08-06T17:32:11.773 回答
6
$ranges = array(0,50,250,500,700,1000....);  
$number = ....;

foreach($ranges as $range){
 if ($number>$range)
     continue;
 else 
     return prev($ranges);
}
于 2012-08-06T17:38:38.933 回答
4
$startPoints = array(700, 500, 250, 50);

$num_range = 0;
foreach ($startPoints as $from) {
    if ($number >= $from) {
        $num_range = $from;
        break;
    }
}
于 2012-08-06T17:41:50.350 回答
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";
    } 
}
于 2012-08-06T17:41:13.550 回答