如何根据 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);