我想根据嵌套数组的第一个值对多维数组进行排序。对于下面的示例,结果应为 [[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");
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
您可以使用太空飞船运算符 ( <=>) 使您的排序逻辑不那么冗长。
$arrint = [
[10, 20],
[16, 19],
[3, 6],
[1,3]
];
usort($arrint, function ($a, $b) {
return $a[0] <=> $b[0];
});
var_dump($arrint);
添加回答
举报
0/150
提交
取消