Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要按时间对这个php数组进行排序。AM-PM格式_Php_Arrays_Sorting_Time - Fatal编程技术网

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

我需要按时间对这个php数组进行排序。AM-PM格式,php,arrays,sorting,time,Php,Arrays,Sorting,Time,我有这个阵列: Array ( [0] => Array ( [0] => Array ( [title] => Vinyasa Yoga [start_time] => 06:45 PM [end_time] => 08:15 PM

我有这个阵列:

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
                )

        )

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

我应该怎么做?

您可以使用

例如:

$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
                )

        )

)

这太完美了!非常感谢。我搜索了几个小时寻找这个结果,我忘记了$a和$b变量末尾的[0]。