Как отсортировать многомерный массив по первому значению вложенного массива в php? - PullRequest
0 голосов
/ 23 марта 2020

Я хотел бы отсортировать многомерный массив по первому значению вложенного массива. Для приведенного ниже примера результат должен быть [[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 Ответ

3 голосов
/ 23 марта 2020

Вы можете сделать свою логику сортировки c менее подробной, используя оператор космического корабля (<=>).

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

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

var_dump($arrint);
...