PHP 7-按键对多级关联数组进行排序,以按字典顺序对每个级别进行排序

时间:2018-09-26 15:24:57

标签: 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]];

1 个答案:

答案 0 :(得分: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);

尝试:here