如何在PHP中对多维数组进行排序并保留键?

Tha*_*you 1 php sorting multidimensional-array

我有两个数组,我需要对A-> Z进行排序,但需要保留所有数字索引.我不知道如何处理这个问题.

注意:在$complex数组中,只要保留关联的键并对子数组内容进行排序,子数组的顺序就无关紧要了.

两个示例中都必须保留所有键.

<?php

$simple = array(
    20 => 'Hello',
    10 => 'Cat',
    30 => 'Dog'
);


$complex = array(
    30 => array(
        5 => 'foo',
        10 => 'bar'
        ),
    10 => array(
        4 => 'a',
        1 => 'b'
        ),
    20 => array()
);
Run Code Online (Sandbox Code Playgroud)

期望的输出

// simple
array(
    10 => Cat,
    30 => Dog,
    20 => Hello
)

// complex; order of top-level indexes (30, 10, and 20) is not important but the key *must* be preserved
array(
    30 => array(
        10 => bar,
        5 => foo,
        ),
    10 => array(
        4 => a,
        1 => b,
        ),
    20 => array()
)
Run Code Online (Sandbox Code Playgroud)

Jon*_*uhn 5

ASORT

$simple = array(
    20 => 'Hello',
    10 => 'Cat',
    30 => 'Dog'
);
asort($simple);

$complex = array(
    30 => array(
        5 => 'foo',
        10 => 'bar'
        ),
    10 => array(
        4 => 'a',
        1 => 'b'
        ),
    20 => array()
);
array_walk($complex, 'asort');
print_r($complex);
Run Code Online (Sandbox Code Playgroud)