CakePHP 2.4.4如何使用Hash::sort by string键和值对多维数组进行排序?

CakePHP 2.4.4如何使用Hash::sort by string键和值对多维数组进行排序?,php,arrays,sorting,cakephp,Php,Arrays,Sorting,Cakephp,我不理解关于“路径”的文档,所以我没有运气。我尝试按字母顺序对每一层进行排序: array( 'music' => array( 'genre' => array( (int) 0 => 'Dubstep', (int) 1 => 'Blues', (int) 2 => 'Classical' ), 'instrument' => array( (int) 0 =>

我不理解关于“路径”的文档,所以我没有运气。我尝试按字母顺序对每一层进行排序:

array(
'music' => array(
    'genre' => array(
        (int) 0 => 'Dubstep',
        (int) 1 => 'Blues',
        (int) 2 => 'Classical'
    ),
    'instrument' => array(
        (int) 0 => 'Guitar (Electric)',
        (int) 1 => 'Bassoon',
        (int) 2 => 'Harmonica (Diatonic)'
    ),
'anotherLot' => array(

我需要按键对第一个后面的数组进行排序,然后在每个数组中按键对第二个后面的数组进行排序,然后按值对第三个数组进行排序,因此我认为两个更深的层将使用嵌套的foreach进行排序。

我不熟悉CakePHP的哈希类,但这里有一个简单的PHP解决方案:

ksort($data); // sort main array by keys

foreach ($data as &$outer)
{
    ksort($outer); // sort next layer by keys
    foreach($outer as &$inner) 
    {
        asort($inner); // sort inner arrays by values
    }
}

我不确定Hash::sort是否能做得更好。对于自然的、不区分大小写的排序,我使用了natcasesort()而不是asort()。