Php 12小时时钟阵列排序
我一直在谷歌上搜索,找不到任何解决方案来按照12小时时钟格式对数组进行排序。我能够通过将24小时时钟转换为Php 12小时时钟阵列排序,php,arrays,sorting,time,clock,Php,Arrays,Sorting,Time,Clock,我一直在谷歌上搜索,找不到任何解决方案来按照12小时时钟格式对数组进行排序。我能够通过将24小时时钟转换为时间戳,然后使用krsort对其进行排序。但是我不知道如何分类一个12小时的时钟 下面是该场景的示例 未排序的 array( '0' => '03:00 AM', '1' => '12:00 AM', '2' => '03:00 PM', '3' => '01:00 AM', '4' => '04:00 PM',
时间戳
,然后使用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'
);
已排序
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'
);
代码显然是动态工作的,因此无论数组中给定什么时间,它都将按升序或降序排序为12小时时钟,将接受该格式。因此,您可以将自定义排序()与基于strotime的回调一起使用
usort($array, function($a, $b) {
return (strtotime($a) > strtotime($b));
});