PHP在数组中搜索两个给定日期之间的值

时间:2017-04-25 14:06:57

标签: php arrays

我有这个数组:

Array
(
    [1] => Array
        (
            ['s_date'] => 1/1/1989
            ['e_date'] => 6/30/1989
            ['rate'] => 7.92
        )

    [2] => Array
        (
            ['s_date'] => 7/1/1989
            ['e_date'] => 12/31/1989
            ['rate'] => 8.18
        )

    [3] => Array
        (
            ['s_date'] => 1/1/1990
            ['e_date'] => 6/30/1990
            ['rate'] => 7.14
        )

所以我想在两个给定日期之间搜索rate,但我不知道如何解决这个问题,我调查了array_search函数,但它没有帮助。

function findRate($startDate, $endDate) {
  // not sure here what needs to be done...
}

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

只是为了给你一个方向,当你的功能声明时,你的问题有点不清楚。为什么要查找2个日期?

所以我做了这个

function findRate($date,$array){
 $rate=null;
 foreach($yourArray as $value){
  $s=date('Y-m-d',strtotime($value['s_date']));
  $e=date('Y-m-d',strtotime($value['e_date']));
  if($s<=$lookup && $lookup<=$e){
    $result = $value['rate'];
  }
 }
 return $rate;
}

$rate = findRate('1989-02-02',$yourarrayfromabove);//Result  8.18

尝试理解我在这里所做的事情,并根据需要进行改变。

然后打开下一个问题,自我编写的代码,thnx