是什么导致第二个函数错过第二个数组的最后一项?
$x = array(
'Mon Sep 12 12:19:33 +0000 2011',
'Tue Sep 13 14:19:33 +0000 2011',
'Wed Sep 14 01:19:33 +0000 2011',
'Thu Sep 15 07:19:33 +0000 2011',
'Fri Sep 16 16:19:33 +0000 2011',
'Fri Sep 16 19:19:33 +0000 2011',
'Sat Sep 17 15:57:37 +0000 2011',
'Sun Sep 18 13:01:39 +0000 2011',
'id' => array('a','b')
);
//Create function to turn timestamps into unix timestamps so
function textTimeToUnixTime($x) {
$z = array();
for($i = 0; $i < count($x) - 1; $i++) {
array_push($z, strtotime($x[$i]));
}
return $z;
}
function timeDifference($x) {
//Get Time Difference of the timestamps
array_reverse($x);
$z = array();
for($i = 0; $i < count($x) - 1; $i++) {
$a = $x[$i+1] - $x[$i];
array_push($z, $a);
}
return $z;
}
输出
array(8) {
[0]=> int(1315829973)
[1]=> int(1315923573)
[2]=> int(1315963173)
[3]=> int(1316071173)
[4]=> int(1316189973)
[5]=> int(1316200773)
[6]=> int(1316275057)
[7]=> int(1316350899)
}
array(7) {
[0]=> int(93600)
[1]=> int(39600)
[2]=> int(108000)
[3]=> int(118800)
[4]=> int(10800)
[5]=> int(74284)
[6]=> int(75842)
}
答案 0 :(得分:2)
因为在timeDifference中它最后一个循环调用$ x [7 + 1]但是没有这样的$ x [8]而是$ x ['id']所以它只能工作到7。
无论如何,如果你将一次与下一次进行比较,那么差异的数量应该少于1次。