Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как отсортировать массив

Короткий ответ

Функция 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 — Возвращает массив с элементами в обратном порядке.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.