【问题标题】:I need to sort this php array by time. AM PM format [closed]我需要按时间对这个 php 数组进行排序。 AM PM 格式 [关闭]
【发布时间】:2015-12-20 21:36:42
【问题描述】:

我有这个数组:

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
                )

        )

)

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

我应该怎么做?

【问题讨论】:

    标签: php arrays sorting time


    【解决方案1】:

    您可以使用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
                    )
    
            )
    
    )
    

    【讨论】:

    • 这太完美了!谢谢你。我搜索了几个小时来寻找这个结果,我忘记了 $a 和 $b 变量末尾的 [0]。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2020-05-23
    • 1970-01-01
    相关资源
    最近更新 更多