Функция usort
Функцията usort сортира масив
по стойност на елементите, използвайки за
това callback функция за определяне на реда
на елементите в сортирания масив.
Функцията променя самия масив.
Функцията за сравнение трябва да връща цяло число, което в зависимост от резултата от сравнението: по-малко, равно или по-голямо от нула.
Синтаксис
usort(array &$array, callable $callback): bool
Пример
Нека сортираме масив във възходящ ред на елементите:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a < $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Резултат от изпълнението на кода:
[1, 2, 3, 4, 5]
Пример
А сега нека сортираме масив в низходящ ред на елементите:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a > $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Резултат от изпълнението на кода:
[1, 2, 3, 4, 5]
Пример
А сега нека сортираме масив по възходящ брой символи в елементите на масива:
<?php
$arr = [
'123',
'1',
'12345',
'12',
'1234',
];
function func($a, $b)
{
if (strlen($a) === strlen($b)) {
return 0;
} else if (strlen($a) < strlen($b)) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Резултат от изпълнението на кода:
[
'1',
'12',
'123',
'1234',
'12345',
]
Вижте също
-
функцията
sort,
която сортира по възходящ ред на елементите -
функцията
rsort,
която сортира по низходящ ред на елементите -
функцията
ksort,
която сортира по възходящ ред на ключовете -
функцията
krsort,
която сортира по низходящ ред на ключовете -
функцията
asort,
която сортира по възходящ ред на елементите със запазване на ключовете -
функцията
arsort,
която сортира по низходящ ред на елементите със запазване на ключовете -
функцията
natsort,
която сортира по естествен начин -
функцията
natcasesort,
която сортира по естествен начин без значение от регистъра -
функцията
usort,
която сортира по callback функция -
функцията
uksort,
която сортира по callback функция по ключовете -
функцията
uasort,
която сортира по callback функция със запазване на ключовете -
функцията
array_multisort,
която сортира няколко масива