2011-09-26 73 views
3

我有一個大數組,並且想要查找搜索值出現在哪個數組值之間。查找數組值之間的值

這個數組的簡化版本如下:

[0] => Array 
    (
     [min] => 0 
     [max] => 4.999 
     [val] => low 
    ) 

[1] => Array 
    (
     [min] => 5 
     [max] => 9.999 
     [val] => med 
    ) 

[2] => Array 
    (
     [min] => 10 
     [max] => 14.999 
     [val] => high 
    ) 

所以,如果我是爲尋找6.2返回的結果將是「配有」

數組值是否有一個內置的功能可以輕鬆地步行在陣列,使這個計算或者我需要建立一個foreach循環

在此先感謝

回答

6

我認爲一個簡單的˚F oreach將是速度不夠快,具有一定的預防措施,在 浮點比較:看這裏:http://codepad.org/sZkDJJQb

<?php 

$rangeArray = array(
    array('min' => 0, 'max' => 4.999, 'val' => 'low'), 
    array('min' => 5, 'max' => 9.999, 'val' => 'med'), 
    array('min' => 10, 'max' => 14.999, 'val' => 'high'), 
    ); 

$input = 6.2; 
$precision = 0.00001 ; 

foreach($rangeArray as $current) 
{ 
    if(($input - $current['min']) > $precision and ($input - $current['max']) <= $precision) 
    { 
     echo $current['val']; 
     break; 
    } 
} 

?> 
+0

它肯定沒有的伎倆,這是打破;我忘了使用它,它是一個非常大的數組!謝謝! –