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

Пользователь

от bart , в категории: PHP , 6 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от wilburn , 6 месяцев назад

@bart 

Для сортировки массива в PHP можно использовать функции sort, rsort, asort, arsort, ksort, krsort, usort, uasort, uksort, natsort, natcasesort, array_multisort и другие.


Простейшим и наиболее распространенным методом сортировки является функция sort, которая сортирует массив по значениям в порядке возрастания:

1
2
3
$array = array(4, 2, 8, 6);
sort($array);
print_r($array);


Вывод:

1
2
3
4
5
6
7
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
)


Если нужно отсортировать массив в порядке убывания, можно использовать функцию rsort:

1
2
3
$array = array(4, 2, 8, 6);
rsort($array);
print_r($array);


Вывод:

1
2
3
4
5
6
7
Array
(
    [0] => 8
    [1] => 6
    [2] => 4
    [3] => 2
)


Функции asort и arsort сортируют массивы с учетом ключей:

1
2
3
$array = array("b" => 4, "a" => 2, "c" => 8);
asort($array);
print_r($array);


Вывод:

1
2
3
4
5
6
Array
(
    [a] => 2
    [b] => 4
    [c] => 8
)


1
2
3
$array = array("b" => 4, "a" => 2, "c" => 8);
arsort($array);
print_r($array);


Вывод:

1
2
3
4
5
6
Array
(
    [c] => 8
    [b] => 4
    [a] => 2
)


Также можно использовать пользовательскую функцию для сортировки, например, функцию usort. Пользовательская функция должна принимать два элемента массива и возвращать отрицательное число, ноль или положительное число в зависимости от того, какой элемент должен стоять перед другим. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$array = array(4, 2, 8, 6);
usort($array, "compare");
print_r($array);


Вывод:

1
2
3
4
5
6
7
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
)


Это лишь некоторые из возможных способов сортировки массивов в PHP. Выбор метода зависит от конкретных требований и характеристик массива, который необходимо отсортировать.