2012-09-27 34 views
0

我目前使用的是usort使用自定义功能进行排序一个multidimensionial阵列:排序多维数组并保留其键

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]

+0

那不是一个真正的排序呢。 – CheesePls

+0

@CheesePls:那是什么? – zerkms

回答

5

使用uasort()相反,它保留了原始密钥

+0

嗯,我觉得很愚蠢。非常感谢。 – squagels

+0

另请参阅:http://php.net/manual/en/array.sorting.php了解排序功能列表以及哪些保留键。 – Mahn