猿问

按降序对二维数组进行排序

我有一个以自定义顺序从 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];

什么都行不通。有什么帮助吗?


料青山看我应如是
浏览 118回答 2
2回答

慕丝7291255

这有效(用于$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&nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; [0] => 2018&nbsp; &nbsp; &nbsp; &nbsp; [1] => 0000-00-00&nbsp; &nbsp; )[1] => Array&nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; [0] => 2017&nbsp; &nbsp; &nbsp; &nbsp; [1] => 0000-00-00&nbsp; &nbsp; )[2] => Array&nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; [0] => 2016&nbsp; &nbsp; &nbsp; &nbsp; [1] => 0000-00-00&nbsp; &nbsp; )

九州编程

$a[0] < $b[0] 为我工作。usort($array, function($a, $b) {&nbsp; &nbsp; &nbsp;return $a[0] < $b[0];});
随时随地看视频慕课网APP
我要回答