我有两个数组,可以说$data['Occur']
和$data['Reset']
$data['Occur']
是一个由某些事件发生的时间戳和
$data['Reset']
是一个由重置同一事件的时间戳组成的数组
我要做的是找到事件发生的相应重置时间戳。
例如:
如果事件发生在“ 2013-10-01 00:50:27 ”并且它在数组 $ data ['Occur'] 中,那么 重置该事件的时间戳将只是更大的时间戳 2013-10-01 00:53:27 。
我必须维护一个如下所示的数组:
$ array [0] ['occurrence'] ='2013-10-01 00:50:27';
$ array [0] ['reset'] ='2013-10-01 00:53:27';(各自重置时间戳2013-10-01 00:50:27)
$ array [1] ['occurrence'] ='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
)
)
上面的数组可能会有随机时间戳,所以我不能顺序匹配它们。 我必须匹配所有事件发生和重置时间戳。我怎么能得到这个?
答案 0 :(得分: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);
}