最后一个显示通知的数组是这样的:
Array
(
[0] => Array
(
[notification] => 1 new topic posted in : Current Affairs classroom
[on_create] => 12th Aug - 2016 5:20AM
[notif_date_sort] => 2016-08-12 05:20:23
)
[1] => Array
(
[notification] => 8 new topic posted in : GK classroom
[on_create] => 4th Aug - 2016 10:51AM
[notif_date_sort] => 2016-08-04 10:51:56
)
)
我尝试了方法,如multisort, ksort,但没有找到合适的结果。如何根据"notif_date_sort"对数组内的元素进行排序?
您可以将ussort()与您自己的函数一起使用,按照日期对结果进行排序。
,
usort($array, 'custom_date_sort');
function custom_date_sort($a,$b) {
$date1 = DateTime::createFromFormat('Y-m-d H:i:s', $a["notif_date_sort"]);
$date2 = DateTime::createFromFormat('Y-m-d H:i:s', $b["notif_date_sort"]);
return $date1>$date2;
}
其中DateTime::createFromFormat从字符串创建DateTime对象。
您需要使用ussort()函数
试试这个:
function compare_dates($date1, $date2){
$date1 = strtotime($date1['notif_date_sort']);
$date2 = strtotime($date2['notif_date_sort']);
if ($date1 == $date2) {
return 0;
}
return ($date2 < $date2) ? -1 : 1;
}
usort($array, "compare_dates");