php 7 - сортировка многоуровневого ассоциативного массива по ключам для его лексикографической сортировки на каждом уровне - PullRequest
0 голосов
/ 26 сентября 2018

В 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 голосов
/ 26 сентября 2018

Наконец, решил.

$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);

Попробуйте: здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...