Для сортировки многомерного массива в PHP можно использовать различные методы. Вот несколько примеров с кодом:
- Использование функции 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 ) ) - Использование пользовательской функции сортировки с помощью 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
)
)
-
Использование 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 )
)