@greyson
В PHP есть функция array_multisort
, которая позволяет сортировать многомерные массивы по любому измерению (столбцу, строке и т.д.). Пример:
1 2 3 4 5 6 7 8 9 10 11 |
$array = array( array('name' => 'John', 'age' => 25), array('name' => 'Jane', 'age' => 30), array('name' => 'Mike', 'age' => 20) ); // сортировка по возрасту по возрастанию $ages = array_column($array, 'age'); array_multisort($ages, SORT_ASC, $array); print_r($array); |
Результат:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Array ( [0] => Array ( [name] => Mike [age] => 20 ) [1] => Array ( [name] => John [age] => 25 ) [2] => Array ( [name] => Jane [age] => 30 ) ) |
В данном примере мы сначала используем функцию array_column
для получения массива ages
, содержащего значения возраста из первоначального массива. Затем мы используем array_multisort
, чтобы отсортировать исходный массив $array
по возрастанию значениями массива ages
.