使用PHP从数组中删除过期日期

Eri*_*ger 1 php arrays date unset

我有一系列格式为'm/d/Y'(月/日/年)的日期:

$array = array(

'1/10/2014',
'1/11/2014',
'1/12/2014',
'1/13/2014',
'1/14/2014'
);
Run Code Online (Sandbox Code Playgroud)

而且我想输出只有今天或将来日期的数组.因此,如果今天是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);
Run Code Online (Sandbox Code Playgroud)

我想我没有unset正确使用,因为它打印整个阵列?

koa*_*dev 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 )
Run Code Online (Sandbox Code Playgroud)

*注意:匿名函数需要PHP 5.3