在数组值之间查找值

时间:2011-09-26 07:19:16

标签: php arrays multidimensional-array lookup

我有一个大型数组,想要找出搜索值出现在哪些数组值之间。

此阵列的简化版本如下:

[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,则返回的结果将是数组值'med'

是否有内置函数可以轻松遍历数组进行此计算,或者我是否需要设置foreach循环

提前致谢

1 个答案:

答案 0 :(得分:6)

我认为一个简单的foreach足够快,并有一些预防措施 浮点比较:请在此处查看: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;
    }
}

?>