在PHP中对多层和多维数组进行排序

时间:2017-01-21 10:34:24

标签: php arrays sorting multidimensional-array

我在这里发表的第一个问题,虽然我是一位长期用户。我的PHP技能不高级。我正在使用PHP7 BTW。

我发现了类似的问题,但是没有使用等级元素,所以到目前为止我所尝试的答案都没有奏效。对于经验丰富的PHP程序员来说,这可能是显而易见的。

我有一些json格式的数据,并将其解码为以下数组:

Array ( 
    [soc] => 3421 
    [series] => Array ( 
            [0] => Array ( [year] => 2013 [estpay] => 620 ) 
            [1] => Array ( [year] => 2015 [estpay] => 580 ) 
    ) 
)

数据来源各不相同,因此有时会有更多年份数据,有时甚至更少。随着新数据的添加,它也会随着时间的推移而发生变化。

我想对数组进行排序,以便最近一年始终是第一个。正如我前面提到的,我已经尝试了一些针对多维数组发布的解决方案,但是我使用的数据在数组的较低层中具有多维数组,所以我没有能够找出如何更改多维数组的示例代码以解决此问题。

正如我所提到的,我不是PHP专家,因此请不要在任何回复中对我的技能水平做出任何假设。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

假设您正在使用PHP7,并且正如您所说,您想按年份降序排序,那么对于您要排序的每个数组,请尝试以下方法:

usort($array, function ($a, $b) {
    return $b['year'] <=> $a['year'];
});