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


小怪兽爱吃肉
浏览 63回答 1
1回答

慕沐林林

您可以使用太空飞船运算符 ( <=>) 使您的排序逻辑不那么冗长。$arrint = [&nbsp; &nbsp;[10, 20],&nbsp; &nbsp;[16, 19],&nbsp; &nbsp;[3, 6],&nbsp; &nbsp;[1,3]];usort($arrint, function ($a, $b) {&nbsp; &nbsp; return $a[0] <=> $b[0];});var_dump($arrint);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript