12小时时钟阵列排序

时间:2015-06-18 01:29:47

标签: php arrays sorting time clock

我一直在Google上搜索,找不到任何根据12小时时钟格式对数组进行排序的解决方案。我可以将24小时制转换为timestamps,然后使用krsort对其进行排序。但我不知道如何对12小时时钟进行排序..

以下是该场景的示例..

未排序

array(
    '0' => '03:00 AM',
    '1' => '12:00 AM',
    '2' => '03:00 PM',
    '3' => '01:00 AM',
    '4' => '04:00 PM',
    '5' => '02:00 AM',
    '6' => '12:00 PM',
    '7' => '04:00 AM',
    '8' => '01:00 PM',
    '9' => '02:00 PM'
);

排序

array(
    '0' => '12:00 AM',
    '1' => '01:00 AM',
    '2' => '02:00 AM',
    '3' => '03:00 AM',
    '4' => '04:00 AM',
    '5' => '12:00 PM',
    '6' => '01:00 PM',
    '7' => '02:00 PM',
    '8' => '03:00 PM',
    '9' => '04:00 PM'
);

代码显然可以动态工作,因此在数组中给出的时间将分配到ascending orderdescending order中的12小时时钟

1 个答案:

答案 0 :(得分:3)

strtotime将接受该格式。因此,您可以使用自定义排序(usort)和基于strtotime的回调。

usort($array, function($a, $b) {
   return (strtotime($a) > strtotime($b));
});