如何使用PHP(而不是MySQL)按时间顺序提取数据,从而将时间和日期从最小到最大排序?
我有一个包含各种“键”的对象的数组,其中包括时间和事件。
以下是我所拥有的var_dump
的编辑:
[0] => object {
["time"] => "24/06/2015 - 12:30 PM"
["event"] => "Another event"
}
[1] => object {
["time"] => "24/06/2015 - 08:45 AM"
["event"] => "Event"
}
[2] => object {
["time"] => "25/06/2015 - 09:50 AM"
["event"] => "Yet another event"
}
我希望输出类似于:
24/06/2015:
事件
另一个事件
25/06/2015:
又一个事件
提前致谢。
答案 0 :(得分:0)
一种方法是重新排列数组,因此键是时间戳值:
$newArr = [];
foreach($objArr as $obj) {
$newArr[ strtotime( $obj->time ) ] = $obj;
}
答案 1 :(得分:0)
您可以使用具有以下自定义功能的usort标准php函数:
function sortbytobjtime($a, $b){
$adate = date_create_from_format('d/m/Y - h:i a', $a->time);
$bdate = date_create_from_format('d/m/Y - h:i a', $b->time);
if ( $adate == $bdate ) return 0;
return ( $adate < $bdate) ? -1 : 1;
}
usort($arr, 'sortbytobjtime');
$ arr是一个充满对象的数组,如您的问题中所述。 请注意,此解决方案需要PHP 5,版本为&gt; = 5.3.0才能使DateTime类可用。