我需要按时间对这个php数组进行排序.AM PM格式


I need to sort this php array by time. AM PM format

我有这个数组:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [title] => Vinyasa Yoga
                    [start_time] => 06:45 PM
                    [end_time] => 08:15 PM
                    [instructor] => Jock
                    [level] => All Levels
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [title] => Yoga FUNdamentals
                    [start_time] => 05:30 PM
                    [end_time] => 06:30 PM
                    [instructor] => Jock
                    [level] => Beginners
                )
        )
)

我需要按时间对这个数组进行排序,以便从最早到最晚显示结果。

我该怎么做?

您可以使用usort。

例如:

$array = array(
    array(
        array(
            "title" => "Vinyasa Yoga",
            "start_time" => "06:45 PM",
            "end_time" => "08:15 PM",
            "instructor" => "Jock",
            "level" => "All Levels"
        )
    ),
    array(
        array(
            "title" => "Yoga FUNdamentals",
            "start_time" => "05:30 PM",
            "end_time" => "06:30 PM",
            "instructor" => "Jock",
            "level" => "Beginners"
        )
    )
);
function cmp($a, $b)
{
    $aDateTime = new DateTime($a[0]["start_time"]);
    $bDateTime = new DateTime($b[0]["start_time"]);
    return $aDateTime > $bDateTime ? 1 : -1;
};
usort($array, "cmp");
print_r($array);

将导致:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [title] => Yoga FUNdamentals
                    [start_time] => 05:30 PM
                    [end_time] => 06:30 PM
                    [instructor] => Jock
                    [level] => Beginners
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [title] => Vinyasa Yoga
                    [start_time] => 06:45 PM
                    [end_time] => 08:15 PM
                    [instructor] => Jock
                    [level] => All Levels
                )
        )
)