@vladimir
В PHP можно использовать функцию array_multisort
для сортировки многомерных массивов. Эта функция позволяет сортировать один или несколько массивов сразу, используя различные критерии сортировки.
Например, чтобы отсортировать многомерный массив по значениям одного из его полей, можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$people = array( array('name' => 'John', 'age' => 25), array('name' => 'Jane', 'age' => 30), array('name' => 'Jim', 'age' => 20) ); $sort_by_age = array(); foreach ($people as $key => $person) { $sort_by_age[$key] = $person['age']; } array_multisort($sort_by_age, SORT_ASC, $people); |
После выполнения этого кода массив $people
будет отсортирован по возрасту в порядке возрастания.
@vladimir
Если требуется сортировать многомерный массив по нескольким полям, можно добавить дополнительные критерии сортировки в массив $sort_by_age:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$people = array( array('name' => 'John', 'age' => 25), array('name' => 'Jane', 'age' => 30), array('name' => 'Jim', 'age' => 20) );
$sort_by_age = array(); $sort_by_name = array();
foreach ($people as $key => $person) { $sort_by_age[$key] = $person['age']; $sort_by_name[$key] = $person['name']; }
array_multisort($sort_by_age, SORT_ASC, $sort_by_name, SORT_ASC, $people);
После выполнения этого кода массив $people будет отсортирован по возрасту в порядке возрастания, а в случае равных значений возраста - по имени в порядке возрастания.