对多维数组进行排序并保留其键

时间:2012-09-27 22:51:39

标签: php

我目前使用带有自定义函数的usort来对多维数组进行排序:

usort($arr, function($a, $b) {
    return $a['count'] - $b['count'];
});

这将对数组进行排序,但它会丢失关键信息。给定数组:

Array
(
    [3] => Array
        (
            [foo] => bar
            [count] => 11
        )

    [7] => Array
        (
            [foo] => baz
            [count] => 1
        )
)

usort将产生:

Array
(
    [0] => Array
        (
            [foo] => baz
            [count] => 1
        )

    [1] => Array
        (
            [foo] => bar
            [count] => 11
        )
)

我想按count排序,但保留密钥[3][7]。很遗憾,usort会将密钥设置为[0][1]

1 个答案:

答案 0 :(得分:5)

使用uasort()代替,它会保留原始密钥