usort функциясы
usort функциясы массивди
элементтердин мааниси боюнча иреттейт, ал үчүн
иреттелген массивдеги элементтердин тартибин аныктоо
үчүн коллбэкти колдонот.
Функция массивдин өзүн өзгөртөт.
Салыштыруу функциясы бүтүн сан кайтарышы керек, ал салыштыруу натыйжасына жараша: нөлдөн кичине, барабар же чоң.
Синтаксис
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функциясы,
ал коллбэк боюнча иреттейт -
uksortфункциясы,
ал коллбэк боюнча ачкычтар боюнча иреттейт -
uasortфункциясы,
ал коллбэк боюнча ачкычтарды сактап иреттейт -
array_multisortфункциясы,
ал бир нече массивди иреттейт