我想相对于嵌套数组的第一个值对多维数组进行排序。对于下面的示例,结果应为[[1,3],[3、6],[10、20],[16、19]。我试过了,但是什么也没发生。我想知道在哪里使用usort()错误。
function cmp($x, $y){
global $arrint;
if ($x[0] == $y[0]) {
return 0;
}
return ($x[0] < $y[0]) ? -1 : 1;
}
$arrint = [
[10, 20],
[16, 19],
[3, 6],
[1,3]
];
usort($arrint, "cmp");
您可以使用飞船运算符(<=>
)使排序逻辑的详细程度降低。
$arrint = [
[10, 20],
[16, 19],
[3, 6],
[1,3]
];
usort($arrint, function ($a, $b) {
return $a[0] <=> $b[0];
});
var_dump($arrint);