我如何在PHP中自定义对多维数组进行排序(codeititer)

问题描述 投票:-1回答:1

我有一个类似的数组:

Array
(
    [0] => Array
        (
            [category_id] => 411
            [category_name] => some text
            [data] => Array
                (
                    [1] => stdClass Object
                        (
                            [album_id] => 91689
                            [name] => some text                            
                            [pubDate] => December 23, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 91670
                            [name] => some text                           
                            [pubDate] => November 23, 2019
                        )

                )

        )

    [1] => Array
        (
            [category_id] => 15755
            [category_name] => some text
            [data] => Array
                (
                    [1] => stdClass Object
                        (
                            [album_id] => 93624
                            [name] => some text                           
                            [pubDate] => January 02, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 93621
                            [name] => some text                            
                            [pubDate] => January 02, 2019
                        )

                )

        )

    [2] => Array
        (
            [category_id] => 15879
            [category_name] => some text
            [data] => Array
                (
                    [0] => stdClass Object
                        (
                            [album_id] => 91683
                            [name] => some text                          
                            [pubDate] => December 31, 2019
                        )

                )

        )

    [3] => Array
        (
            [category_id] => 456
            [category_name] => some text
            [data] => Array
                (
                    [3] => stdClass Object
                        (
                            [album_id] => 93675
                            [name] => some text                           
                            [pubDate] => January 03, 2019
                        )

                    [2] => stdClass Object
                        (
                            [album_id] => 91679
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                    [1] => stdClass Object
                        (
                            [album_id] => 91675
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 91667
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                )

        )

    [4] => Array
        (
            [category_id] => 435
            [category_name] => some text
            [data] => Array
                (
                    [2] => stdClass Object
                        (
                            [album_id] => 93552
                            [name] => some text
                            [pubDate] => December 31, 2019
                        )

                    [1] => stdClass Object
                        (
                            [album_id] => 91685
                            [name] =>some text
                            [pubDate] => November 23, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 91677
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                )

        )

)

而且我想要这样:

Array
(
    [0] => Array
        (
            [category_id] => 411
            [category_name] => some text
            [data] => Array
                (
                    [1] => stdClass Object
                        (
                            [album_id] => 91689
                            [name] => some text                            
                            [pubDate] => December 23, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 91670
                            [name] => some text                           
                            [pubDate] => November 23, 2019
                        )

                )

        )

    [1] => Array
        (
            [category_id] => 15755
            [category_name] => some text
            [data] => Array
                (
                    [1] => stdClass Object
                        (
                            [album_id] => 93624
                            [name] => some text                           
                            [pubDate] => January 02, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 93621
                            [name] => some text                            
                            [pubDate] => January 02, 2019
                        )

                )

        )

    [2] => Array
        (
            [category_id] => 15879
            [category_name] => some text
            [data] => Array
                (
                    [0] => stdClass Object
                        (
                            [album_id] => 91683
                            [name] => some text                          
                            [pubDate] => December 31, 2019
                        )

                )

        )

    [3] => Array
        (
            [category_id] => 456
            [category_name] => some text
            [data] => Array
                (
                    [3] => stdClass Object
                        (
                            [album_id] => 93675
                            [name] => some text                           
                            [pubDate] => January 03, 2019
                        )

                    [2] => stdClass Object
                        (
                            [album_id] => 91679
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                    [1] => stdClass Object
                        (
                            [album_id] => 91667
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 91675
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                )

        )

    [4] => Array
        (
            [category_id] => 435
            [category_name] => some text
            [data] => Array
                (
                    [2] => stdClass Object
                        (
                            [album_id] => 91685
                            [name] => some text
                            [pubDate] => December 31, 2019
                        )

                    [1] => stdClass Object
                        (
                            [album_id] => 91677
                            [name] =>some text
                            [pubDate] => November 23, 2019
                        )

                    [0] => stdClass Object
                        (
                            [album_id] => 93552
                            [name] => some text
                            [pubDate] => November 23, 2019
                        )

                )

        )

)

请帮助!谢谢!

php arrays codeigniter sorting
1个回答
0
投票

您可以使用usort来对内部数组进行排序,

function custom($a, $b)
{
    return ($a["album_id"] >= $a["album_id"]) ? -1 : 1; // interchange for order change
}
foreach($arr as &$v){
    uasort($v['data'], "custom");    
}
© www.soinside.com 2019 - 2024. All rights reserved.