如何基于notif_date_sort对多维数组进行排序



最后一个显示通知的数组是这样的:

 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");

相关内容

  • 没有找到相关文章

最新更新