基于php中的字段对多维数组进行排序

我有如下所示的多维数组,我想根据[name]php 中的字段进行排序。


Array

(

    [chicago] => Array

        (

            [community_name] => Chicago, IL

            [areas] => Array

                (

                    [0] => Array

                        (

                            [name] => Array

                                (

                                    [0] => HELLO WORLD.

                                )

                        )


                    [1] => Array

                        (

                            [name] => Array

                                (

                                    [0] => Hello

                                )


                        )


                    [2] => Array

                        (

                            [name] => Array

                                (

                                    [0] => Administration.

                                )

                        )

                )


        )


    [chicago-and-surrounding-areas] => Array

        (

            [community_name] => Chicago (and surrounding areas), IL

            [areas] => Array

                (

                    [0] => Array

                        (

                            [name] => Array

                                (

                                    [0] => Carry.

                                )

                        )

                    [1] => Array

                        (

                            [name] => Array

                                (

                                    [0] => Bacteria.

                                )

                        )   

                )


        )

问题陈述:

我想知道我需要在上面的 php 代码中进行哪些更改,以便它根据name字段对数组进行排序。使用上面的 php 代码,它不会对任何内容进行排序。它只是按原样打印输入。




汪汪一只猫
浏览 98回答 1
1回答

MMTTMM

根据您的示例,您实际上是在尝试areas对子数组进行排序,而不是对整个父数组进行排序。因此,您需要依次循环每个子数组并分别对它们进行排序。$array = [&nbsp; &nbsp; 'chicago' => [&nbsp; &nbsp; &nbsp; &nbsp; 'community_name' => 'Chicago, IL',&nbsp; &nbsp; &nbsp; &nbsp; 'areas' => [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['HELLO WORLD.']&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['Hello'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['Administration.'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; ],&nbsp; &nbsp; 'chicago-and-surrounding-areas' => [&nbsp; &nbsp; &nbsp; &nbsp; 'community_name' => 'Chicago (and surrounding areas), IL',&nbsp; &nbsp; &nbsp; &nbsp; 'areas' => [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['Carry.']&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['Bacteria.'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; ],&nbsp; &nbsp; 'cambridge-chicago' => [&nbsp; &nbsp; &nbsp; &nbsp; 'community_name' => 'Cambridge (Chicago), IL',&nbsp; &nbsp; &nbsp; &nbsp; 'areas' => [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['Responsibility.']&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => ['Bacteria'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; ],];foreach ($array as &$locality) {&nbsp; &nbsp; usort($locality['areas'], function ($a, $b) {&nbsp; &nbsp; &nbsp; &nbsp; return $a['name'][0] <=> $b['name'][0];&nbsp; &nbsp; });}var_dump($array);工作示例
打开App,查看更多内容
随时随地看视频慕课网APP