2011-09-26 29 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

它肯定没有的伎俩,这是打破;我忘了使用它,它是一个非常大的数组!谢谢! –