如果值介于两个元素之间,如何搜索关联数组

How to search an Associative array if a value is between two elements

我有以下内容:

我有一定的价值14.50

以及以下关联数组:

                  element a      element b        element c
row 1              8              12                house
row 2              12             15                cat
row 3              17             20                pizza

有谁知道如何检查关联数组中 14.50 在元素 a 和 b 之间的哪一行。在示例第 2 行中。

我想获取价值猫。 如果值为 4,我想给第一个值 'house' ...

请指教:)

  Array
  (
      [0] => Array
          (
              [medewerker] => 799
              [datum] => 2016-04-14 00:00:00
              [uursoort] => Reisuur
              [uurcode] => RNV
              [project] => 
              [begin] => 7.50
              [eind] => 8.00
              [uren] => 0.5
              [cumulatiefOud] => 0
              [cumulatief] => 0
              [overuren125] => 0
              [overuren150] => 0
          )

      [1] => Array
          (
              [medewerker] => 799
              [datum] => 2016-04-14 00:00:00
              [uursoort] => Werkuur
              [uurcode] => DNV
              [project] => 
              [begin] => 8.00
              [eind] => 16
              [uren] => 8
              [cumulatiefOud] => 0
              [cumulatief] => 8
              [overuren125] => 0
              [overuren150] => 0
          )

      [2] => Array
          (
              [medewerker] => 799
              [datum] => 2016-04-14 00:00:00
              [uursoort] => Werkuur
              [uurcode] => DEV125
              [project] => 
              [begin] => 8.00
              [eind] => 16.25
              [uren] => 0.25
              [cumulatiefOud] => 8
              [cumulatief] => 8.25
              [overuren125] => 0.25
              [overuren150] => 0
          )

我这样做了并且成功了:

<?php

$arr = array();
$arr[1]['a'] = 8;
$arr[1]['b'] = 12;
$arr[1]['c'] = 'house';
$arr[2]['a'] = 12;
$arr[2]['b'] = 15;
$arr[2]['c'] = 'cat';
$arr[3]['a'] = 17;
$arr[3]['b'] = 20;
$arr[3]['c'] = 'pizza';

$number = 14.5;
foreach($arr as $row)
{
    if ($number >= $row['a'] && $number <= $row['b'])
    echo $row['c'];
}

?>

Output: cat

实际上,这是基本的编程。您只需要遍历行并验证您想要的数字是否在 beginend 变量之间。在这种情况下,ab.

然后echo你想要的值,或者做其他事情。

在这段代码中如果$number = 12;,它会回显

housecat

因此您不想验证它是否大于或等于,而只是检查它是否大于而不等于 b

像这样:

if ($number > $row['a'] && $number <= $row['b'])