如何根据 php 中嵌套数组的第一个值对多维数组进行排序?
How to sort multidimensional array with respect to the first value of nested array in php?
我想根据嵌套数组的第一个值对多维数组进行排序。对于下面的示例,结果应为 [[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);
我想根据嵌套数组的第一个值对多维数组进行排序。对于下面的示例,结果应为 [[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);