Как отсортировать массив
Короткий ответ
Функция sort() сортирует сам массив по возрастанию:
<?php
$numbers = [3, 1, 2];
sort($numbers);
echo implode(', ', $numbers);Результат:
1, 2, 3По убыванию
Для обратного порядка есть rsort():
<?php
$numbers = [3, 1, 2];
rsort($numbers);
echo implode(', ', $numbers);Результат:
3, 2, 1По полю
Массив записей сортирует usort() с функцией сравнения. Оператор <=> возвращает -1, 0 или 1:
<?php
$users = [
['name' => 'Anna', 'age' => 30],
['name' => 'Oleg', 'age' => 25],
];
usort($users, fn ($a, $b) => $a['age'] <=> $b['age']);
echo implode(', ', array_column($users, 'name'));Результат:
Oleg, AnnaАссоциативный массив
sort() заново нумерует ключи. Чтобы сохранить их, используйте asort():
<?php
$prices = ['tea' => 150, 'milk' => 90];
asort($prices);
print_r($prices);Результат:
Array
(
[milk] => 90
[tea] => 150
)Функции из этого ответа
- sort — Сортирует массив по возрастанию.
- array_reverse — Возвращает массив с элементами в обратном порядке.