Сортировка многомерных массивов в PHP с примерами кода

Для сортировки многомерного массива в PHP можно использовать различные методы. Вот несколько примеров с кодом:

  1. Использование функции array_multisort():
    $multidimensionalArray = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Alice', 'age' => 30],
    ['name' => 'Bob', 'age' => 20]
    ];
    // Sort the array by age in ascending order
    array_multisort(array_column($multidimensionalArray, 'age'), $multidimensionalArray);
    // Output the sorted array
    print_r($multidimensionalArray);

    В результате будет:

    
    Array
    (
    [0] => Array
        (
            [name] => Bob
            [age] => 20
        )
    [1] => Array
        (
            [name] => John
            [age] => 25
        )
    [2] => Array
        (
            [name] => Alice
            [age] => 30
        )
    )
  2. Использование пользовательской функции сортировки с помощью usort():
    
    $multidimensionalArray = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Alice', 'age' => 30],
    ['name' => 'Bob', 'age' => 20]
    ];

// Сортируем массив по имени в порядке убывания
usort($multisizedArray, function ($a, $b) {
return strcmp($b[‘name’], $a[‘name’ ]);
});

// Выводим отсортированный массив
print_r($multisizedArray);

This will output:

Массив
(
[0] =>Массив
(
[имя] =>Джон
[возраст] =>25
)

[1] => Array
    (
        [name] => Bob
        [age] => 20
    )

[2] => Array
    (
        [name] => Alice
        [age] => 30
    )

)

  1. Использование array_multisort() с несколькими столбцами:

    $multidimensionalArray = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Alice', 'age' => 30],
    ['name' => 'Bob', 'age' => 20]
    ];
    // Sort the array by age in ascending order and name in descending order
    array_multisort(array_column($multidimensionalArray, 'age'), SORT_ASC, array_column($multidimensionalArray, 'name'), SORT_DESC, $multidimensionalArray);
    // Output the sorted array
    print_r($multidimensionalArray);

    Это выведет:

    
    Array
    (
    [0] => Array
        (
            [name] => Bob
            [age] => 20
        )
    
    [1] => Array
        (
            [name] => John
            [age] => 25
        )
    
    [2] => Array
        (
            [name] => Alice
            [age] => 30
        )

)