在PHP中反转多元素数组的顺序

时间:2014-03-24 17:14:54

标签: php arrays sorting

我看了很多(像here the array-sort-comparisons),并试图找出如何排序(或反转)我的多元素数组。但徒劳无功。

我的数组中有三个元素,并希望按“年”ASC排序:

array(52) {
  [0]=>
  array(3) {
    ["id"]=>
    string(2) "SI"
    ["year"]=>
    string(4) "2012"
    ["value"]=>
    string(7) "3711339"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(2) "SI"
    ["year"]=>
    string(4) "2011"
    ["value"]=>
    string(7) "3810626"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(2) "SI"
    ["year"]=>
    string(4) "2010"
    ["value"]=>
    string(7) "3714946"
  }

怎么可能?不知何故,人们需要能够指定三个元素中的哪一个是作为排序基础的“关键”。

感谢任何提示!

3 个答案:

答案 0 :(得分:3)

usort()与自定义比较功能结合使用:

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

Demo

答案 1 :(得分:3)

PHP> = 5.5.0

array_multisort(array_column($array, 'year'), SORT_ASC, $array);

答案 2 :(得分:-1)

如你所说,倒车将适用于你的例子。 你可以做到相当简单

$arr = array(2012, 2011, 2010);
$reversed_arr = array_reverse($arr);