如何在cakePHP中对数组中的两个字段进行排序?

时间:2016-02-05 15:32:01

标签: php arrays sorting cakephp

我正在开发CakePHP。 我有这个数组

     Array
(
    [0] => Array
        (
            [Event] => Array
                (

                    [start_date] => 2014-01-23

                    [year] => 2014
                )
        )

    [1] => Array
        (
            [Event] => Array
                (

                    [start_date] => 2015-01-23
                    [year] => 2015
                )
        )

    [2] => Array
        (
            [Event] => Array
                (

                    [start_date] => 2015-02-23

                    [year] => 2015
                )
        )

    [3] => Array
        (
            [Event] => Array
                (  
                    [start_date] => 2016-02-01
                    [year] => 2016
                )
        )

    [4] => Array
        (
            [Event] => Array
                (
                    [start_date] => 2016-02-02
                    [year] => 2016
                )
        )
)

我想在start_date上使用此数组asc,但我想将年份排序为desc。 我做完了

 $History = Set::sort($eventSortedHistory, '{n}.Event.start_date', 'asc');
     $History = Set::sort($eventSortedHistory, '{n}.Event.year', 'desc');
显然,它会按年分类。

那么,我怎样才能将年份作为desc和start_date排序为PHP中的asc?

1 个答案:

答案 0 :(得分:1)

我认为您可能正在寻找array_multisort() php函数。

如果你想使用Set :: sort,你需要创建一个自定义函数来实现它,因为它不是要按多个字段对数组进行排序。

Solved issue about array_multisort()

希望这可以帮助你:)