按降序对二维数组排序

时间:2019-08-04 10:28:24

标签: php arrays sorting

我有一个以自定义顺序从db数据给出的二维数组。

要对我正在使用的主数组进行排序:

usort($arr, function ($a, $b) {
    return $a[0] <=> $b[0];
});

json_encode结果:

[["2016","0000-00-00"],["2017","0000-00-00"],["2018","0000-00-00"]]

现在,我需要按照具有此结果的降序对项目进行排序:

[["2018","0000-00-00"],["2017","0000-00-00"],["2016","0000-00-00"]]

我尝试将return $a[0] <=> $b[0];更改为此:

 return $a[0] > $b[0];
 return $a[0] < $b[0];
 return $a[0] - $b[0];
 return $b[0] <=> $a[0];

没有任何效果。有帮助吗?

2 个答案:

答案 0 :(得分:2)

这有效(用于$b[0] <=> $a[0]进行排序):

$array = json_decode('[["2016","0000-00-00"],["2017","0000-00-00"],["2018","0000-00-00"]]', TRUE);
usort($array, function($a, $b) { return $b[0] <=> $a[0]; });
print_r($array);

结果按降序排列:

[0] => Array
    (
        [0] => 2018
        [1] => 0000-00-00
    )

[1] => Array
    (
        [0] => 2017
        [1] => 0000-00-00
    )

[2] => Array
    (
        [0] => 2016
        [1] => 0000-00-00
    )

答案 1 :(得分:1)

$a[0] < $b[0]对我有用。

usort($array, function($a, $b) {
     return $a[0] < $b[0];
});

Live demo here