(PHP 4, PHP 5, PHP 7, PHP 8)
uasort — Сортирует массив пользовательской функцией сравнения, сохраняя ассоциацию индексов
Сортирует массив array пользовательской функцией сравнения так,
чтобы ключи массива сохраняли корреляцию со значениями, с которыми они связаны.
Функцией пользуются для сортировки ассоциативных массивов, для которых важен текущий порядок элементов.
Замечание: Функция сохраняет первоначальный порядок элементов, если при сравнении значения двух элементов равны. До PHP 8.0.0 взаимный порядок одинаковых по значению элементов в отсортированном массиве оставался неопределённым.
Замечание: Функция сбрасывает внутренний указатель массива на первый элемент.
arrayВходной массив.
callback
Функция возвращает логическое значение true.
| Версия | Описание |
|---|---|
| 8.2.0 |
Значение возврата теперь принадлежит типу true; раньше значение принадлежало типу bool.
|
| 8.0.0 |
Функция теперь выдаст ошибку уровня E_WARNING,
если параметр callback-функции ожидает
передачу значения по ссылке.
|
Пример #1 Простой пример использования функции uasort()
<?php
// Функция сравнения
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Сортируемый массив
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);
// Сортируем и выводим получившийся массив
uasort($array, 'cmp');
print_r($array);
?>Результат выполнения приведённого примера:
Array
(
[a] => 4
[b] => 8
[c] => -1
[d] => -9
[e] => 2
[f] => 5
[g] => 3
[h] => -4
)
Array
(
[d] => -9
[h] => -4
[c] => -1
[e] => 2
[g] => 3
[a] => 4
[f] => 5
[b] => 8
)