【发布时间】:2020-07-03 10:44:35
【问题描述】:
我想根据嵌套数组的第一个值对多维数组进行排序。对于下面的示例,结果应该是 [[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");
【问题讨论】:
-
您在同一个区块中有两个退货。 Return 停止函数的执行。顺便说一句,你不需要那个全局的。
-
谢谢,你是对的,但我更正了它,问题仍然存在。
-
我无法使用编辑后的代码进行复制。为我工作。查看@fubar 给你的答案,这是一个非常优雅的解决方案。