(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 )