如何相对于php中嵌套数组的第一个值对多维数组进行排序?

问题描述 投票:0回答:1

我想相对于嵌套数组的第一个值对多维数组进行排序。对于下面的示例,结果应为[[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");
php arrays sorting usort
1个回答
1
投票

您可以使用飞船运算符(<=>)使排序逻辑的详细程度降低。

$arrint = [
   [10, 20],
   [16, 19],
   [3, 6],
   [1,3]
];

usort($arrint, function ($a, $b) {
    return $a[0] <=> $b[0];
});

var_dump($arrint);
© www.soinside.com 2019 - 2024. All rights reserved.