PHP按二维排序多维数组

时间:2014-04-02 18:40:27

标签: php sorting multidimensional-array

我有一个数组:

   array(2) {
      [0]=>  array(17) {
        [0]=>   int(40)
        [1]=>   int(41)
        [2]=>   int(199)
        [3]=>   int(196)
        ...etc...
     }
     [1]=>  array(17) {
        [0]=>   22
        [1]=>   66
        [2]=>   12
        [3]=>   180
        ...etc...
     }
   }

我希望按第二个维度按降序对数组进行排序,这样第一个维度也会被排序并按索引维护相同的“关联”。我想要的结果是:

   array(2) {
      [0]=>  array(17) {
        [0]=>   int(196)
        [1]=>   int(41)
        [2]=>   int(40)
        [3]=>   int(199)
        ...etc...
     }
     [1]=>  array(17) {
       [0]=>   180
       [1]=>   66
       [2]=>   22
       [3]=>   12
   ...etc...
     }
   }

(我希望我能正确地做到这一点。)是的,我知道我可以将这些格式提取为row->col格式,然后使用array_multisort但是有一种方法可以更优雅/直接地做到这一点,对吗?我显然没有得到它。

1 个答案:

答案 0 :(得分:0)

尝试:

foreach ($arrays as &$array) {
    sort($array);
}

因为我们使用foreach遍历数组数组中的每个数组。我们可以将它排序为排序任何其他数组。

e:抱歉,我忘了您需要添加&符号以通过引用传递数组。

e2:使用arsort而不是sort来按降序排序。