我有一系列日期格式为'm / d / Y'(月/日/年):
$array = array(
'1/10/2014',
'1/11/2014',
'1/12/2014',
'1/13/2014',
'1/14/2014'
);
我想输出只有今天或将来日期的数组。因此,如果今天是2014年1月12日,它将消除2014年1月10日和2014年1月11日。
以下是我的工作原理:
foreach ($array as $date) {
$unixdate = strtotime($date);
if ($unixdate < time()) {
unset($array[$date]);
}
}
print_r($array);
我想我没有正确使用unset
,因为它打印整个数组?
答案 0 :(得分:5)
我建议你研究一下array_filter()
。您还想在今天的12:00:00使用比较,而不是当前时间。
$array = array(
'1/10/2014',
'1/11/2014',
'1/12/2014',
'1/13/2014',
'1/14/2014'
);
$array = array_filter($array,function($date){
return strtotime($date) >= strtotime('today');
});
print_r($array); //Array ( [2] => 1/12/2014 [3] => 1/13/2014 [4] => 1/14/2014 )
*注意:匿名函数需要PHP 5.3
答案 1 :(得分:2)
尝试
foreach ($array as $key => $date) {
$unixdate = strtotime($date);
if ($unixdate < time()) {
unset($array[$key]);
}
}
print_r($array);
答案 2 :(得分:0)
foreach($ array as &amp; $ date)嗨使用引用调用和$ date = NULL;在循环中
OR
foreach ($array AS $key => $date) {
$unixdate = strtotime($date);
if ($unixdate < time()) {
unset($array[$key]);
}
}
如果您想完全删除这些条目