按PHP中的值排序多维数组

时间:2013-10-23 18:20:32

标签: php arrays sorting multidimensional-array

我从类型的mysql数据库表中获取了一个数组。我想按特定价值排序。

$arr1=array(array(12, 8, 5, 34),
        array(54, 87, 32, 10),
        array(23, 76, 98, 13),
        array(53, 16, 24, 19));

我如何按价值排序? 就像按第二个值排序一样。

$arr1=array(array(12, 8, 5, 34),
        array(53, 16, 24, 19),
        array(23, 76, 98, 13),
        array(54, 87, 32, 10));

2 个答案:

答案 0 :(得分:1)

我喜欢使用usort来解决这些问题。

$sortKey = 1;
usort($arr1, function($a, $b) use($sortKey){
    return $a[$sortKey] - $b[$sortKey];
});

答案 1 :(得分:1)

同意@RocketHazmat,array_multsort是背后的皇家痛苦。 usort更容易理解,但我认为无论如何我都会去:

$sortKey = 1;
array_multisort(array_map(function($v) use($sortKey){
    return $v[$sortKey];
}, $arr1), $arr1);

只花了20分钟...... :(

这是demohttp://ideone.com/2rZYIz