Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
PHP7-按键对多级关联数组进行排序,使其在每个级别上按字典顺序进行排序_Php_Sorting_Multidimensional Array_Tree Traversal - Fatal编程技术网

PHP7-按键对多级关联数组进行排序,使其在每个级别上按字典顺序进行排序

PHP7-按键对多级关联数组进行排序,使其在每个级别上按字典顺序进行排序,php,sorting,multidimensional-array,tree-traversal,Php,Sorting,Multidimensional Array,Tree Traversal,在PHP7中,如何对数组的所有级别进行递归排序,以使任何相邻键按字典顺序排列 此示例阵列: $a = ['c'=>['d'=>1, 'a'=>2], 'b'=>['b'=>3, 'a'=>4], 'a'=>['z','x','y']]; 我希望翻译成: $a = ['a'=>['z','x','y'], 'b'=>['a'=>4, 'b'=>3], 'c'=>['a'=>2, 'd'=>1]]; 终于解决了

在PHP7中,如何对数组的所有级别进行递归排序,以使任何相邻键按字典顺序排列

此示例阵列:

$a = ['c'=>['d'=>1, 'a'=>2], 'b'=>['b'=>3, 'a'=>4], 'a'=>['z','x','y']];
我希望翻译成:

$a = ['a'=>['z','x','y'], 'b'=>['a'=>4, 'b'=>3], 'c'=>['a'=>2, 'd'=>1]];
终于解决了

$a = ['c'=>['d'=>1, 'a'=>2], 'b'=>['b'=>3, 'a'=>4], 'a'=>['z','x','y']];

function array_sort_recursive($arr) {
    foreach ($arr as $key => $val) {
        if (is_array($val))
            $arr[$key] = array_sort_recursive($val);
    }
    uksort($arr, "strcmp");
    return $arr;
}

$b = array_sort_recursive($a);
print_r($b);

试试看:

类似方法可能重复,但有点不同。