在日期时间数组中查找下一个事件

时间:2010-11-19 10:30:28

标签: php multidimensional-array

我有以下数组,它由日期时间和事件组成。我期待从今天的日期返回下一个活动。例如:如果今天的日期是2010-11-19,则返回“足球比赛”。

实现这一结果的最佳方法是什么?

非常感谢。

Array(
    [1] => Array
        (
            [start] => 20101113T100000Z
            [event] => Fishing at the Pond
        )

    ... etc ...

    [29] => Array
        (
            [start] => 20101125T150000Z
            [event] => Football Match
        )
)

2 个答案:

答案 0 :(得分:2)

为什么不把日期时间作为数组的密钥? Imo会更简单,因为你只有2个值。

Array(
[20101113T100000Z] => Fishing at the Pond
[20101125T150000Z] => Football Match
)

然后使用foreach,您可以使用今天的日期测试每个值,并在找到所需内容时停止。

答案 1 :(得分:0)

$date = '2010-11-19';

$next = $array[0];
foreach ($array as $item)
  if (strtotime($date) < strtotime($item['start']) && strtotime($date) > strtotime($next['start'])) $next = $item;

echo $next['event'];