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

时间:2016-04-14 12:01:31

标签: php arrays search associative

我有以下内容:

我有一定值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和amp;之间的哪一行。湾在示例第2行中。

我想获得价值猫。 如果值为4,我想给出第一个值'房子' ...

请建议:)

  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
          )

1 个答案:

答案 0 :(得分: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'];
}

?>
  

输出: cat

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

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

在此代码$number = 12;中,它将回显

  

家猫

所以你不想验证它是否更大或相等,而只是检查它是否更大而不等于b

像这样:

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