0

我有两个数组可以说$data['Occur']$data['Reset']

$data['Occur']是一个由某些事件发生的时间戳组成的数组,并且

$data['Reset']是一个由重置相同事件的时间戳组成的数组

我要做的是找到事件发生的相应重置时间戳。

例如:

如果事件发生在“ 2013-10-01 00:50:27 ”并且它位于数组$data['Occur']中,则该事件的重置时间戳将只是更大的时间戳2013-10-01 00:53:27

我必须从中维护一个数组,如下所示:

$array[0]['发生']='2013-10-01 00:50:27';

$array[0]['reset']='2013-10-01 00:53:27';(分别为 2013-10-01 00:50:27 的重置时间戳)

$array[1]['发生']='2013-10-01 00:55:11';

$array[1]['reset']='2013-10-01 00:57:17';(分别为 2013-10-01 00:55:11 的重置时间戳)

在“发生”时间戳的基础上,我必须为 $data['Occur'] 数组的每个时间戳值找到更大的“重置”时间戳。

$data['Occur'] 数组看起来像:

[Occur] => Array
        (
            [0] => Array
                (
                    [Occur_Date_Time] => 2013-10-01 00:50:27
                )

            [1] => Array
                (
                    [Occur_Date_Time] => 2013-09-01 00:52:01
                )

            [2] => Array
                (
                    [Occur_Date_Time] => 2013-08-01 00:07:48
                )

            [3] => Array
                (
                    [Occur_Date_Time] => 2013-07-01 00:06:59
                )

            [4] => Array
                (
                    [Occur_Date_Time] => 2013-06-18 10:04:16
                )

            [5] => Array
                (
                    [Occur_Date_Time] => 2013-06-17 11:40:50
                )
       )

**and** 

[reset] => Array
        (
            [0] => Array
                (
                    [reset_Date_Time] => 2014-04-01 00:03:34
                )

            [1] => Array
                (
                    [reset_Date_Time] => 2013-09-01 01:09:21
                )

            [2] => Array
                (
                    [reset_Date_Time] => 2013-09-01 00:00:34
                )

            [3] => Array
                (
                    [reset_Date_Time] => 2013-07-01 00:16:14
                )

            [4] => Array
                (
                    [reset_Date_Time] => 2013-06-18 11:05:28
                )

            [5] => Array
                (
                    [reset_Date_Time] => 2013-06-17 12:56:58
                )
       )

上面的数组可能会有随机时间戳,所以我不能按顺序匹配它们。我必须匹配所有发生的事件并重置时间戳。我怎么能得到这个?

4

1 回答 1

0
function findResetMate($e,$k, $reset) {
    $gap = 10E50+1;
    if ($reset < $e) return false;
    if (($reset - $e) < $gap) {
        $gap = ($reset - $e);
        $mate = $reset;
    }
    echo "EVENT : " . date("M d, Y H:i:s",$e) . " -->RESET<-- " . date("M d, Y H:i:s",$reset) . "<br />\n";
    return true;
}
foreach($data['Reset'] as $r) {
    array_walk($data['Occur'], "findResetMate", $r);
}
于 2013-08-19T11:41:46.103 回答