【发布时间】:2015-11-24 21:28:41
【问题描述】:
$time = time();
$foo = array(
1448319600 => array(
array(
'foo' => 'bar'
),
array(
'bar' => 'foo'
)
),
1448578800 => array(
array(
'foo2' => 'bar2'
),
array(
'bar2' => 'foo2'
)
)
);
function bar($time, $foo) {
$count = 0;
do {
$count++;
$time = strtotime('+1 day', $time);
} while (isset($foo[$time]) === false);
return array(
'count' => $count,
'foo' => $foo[$time]
);
}
bar($time, $foo);
它正在加载,加载和加载,因为isset($foo[$time]) === false 似乎总是正确的。我就是找不到错误。
(要提交更多文本。要提交更多文本。要提交更多文本。)
【问题讨论】:
-
在我看来,这当然取决于您第一次执行
bar时指定的start value。因为您总是添加1 day,它解析为86400 seconds,并且您指定的时间戳是11/26/2015和11/25/2015,两者都位于11:00 pm。因此,如果您使用与11:00 pm不同的初始$time来调用bar,它当然不会起作用。 -
其实
1448319600应该代表11/24/2015 00:00,1448578800应该代表11/27/2015 00:00。