0

我有一个从类型的 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));
4

2 回答 2

1

必须同意@RocketHazmat,array_multsort这是背后的皇家痛苦。 usort更容易理解,但我想我还是会去的:

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

只用了20分钟... :(

这是一个演示:http: //ideone.com/2rZYIz

于 2013-10-23T19:00:11.157 回答
1

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

$sortKey = 1;
usort($arr1, function($a, $b) use($sortKey){
    return $a[$sortKey] - $b[$sortKey];
});
于 2013-10-23T18:24:02.130 回答