The most effective way to determine in which range a number is?

My application generates a random integer from 0 to 1000.

I have 5 ranges: 0-50 , 51-250 , 251-500 , 501-700 , 701-1000 . (Note that range sizes are not equal.)

I will name these ranges: "0", "50", "250", "500", "700", respectively (will store these names in my database).

I know I can do the following:

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

... etc.

But is there a more efficient way to do this?

Thank you very much. Relations

+4
source share
4 answers

Use elseif efficiently:

 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'; ... 
+6
source
 $ranges = array(0,50,250,500,700,1000....); $number = ....; foreach($ranges as $range){ if ($number>$range) continue; else return prev($ranges); } 
+6
source
 $startPoints = array(700, 500, 250, 50); $num_range = 0; foreach ($startPoints as $from) { if ($number >= $from) { $num_range = $from; break; } } 
+4
source
 $range[0] = range(0, 49); $range[50] = range(50, 249); $range[250] = range(250, 499); .... 

then do:

 foreach($range as $r => $vals){ if(in_array($number, $vals)){ echo "Number is in range: $r"; } } 
+1
source

All Articles