Funkcija usort
Funkcija usort rūšiuoja masyvą
pagal elementų reikšmes, naudodama tam
callback funkciją elementų tvarkai
nustatyti surūšiuotame masyve.
Funkcija modifikuoja patį masyvą.
Palyginimo funkcija turi grąžinti sveikąjį skaičių, kuris priklausomai nuo palyginimo rezultato: mažesnis, lygus ar didesnis už nulį.
Sintaksė
usort(array &$array, callable $callback): bool
Pavyzdys
Surūšiuokime masyvą didėjančia elementų tvarka:
<?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);
?>
Kodo vykdymo rezultatas:
[1, 2, 3, 4, 5]
Pavyzdys
O dabar surūšiuokime masyvą mažėjančia elementų tvarka:
<?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);
?>
Kodo vykdymo rezultatas:
[1, 2, 3, 4, 5]
Pavyzdys
O dabar surūšiuokime masyvą pagal simbolių kiekį didėjimo tvarka masyvo elementuose:
<?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);
?>
Kodo vykdymo rezultatas:
[
'1',
'12',
'123',
'1234',
'12345',
]
Taip pat žiūrėkite
-
funkciją
sort,
kuri rūšiuoja pagal elementų didėjimą -
funkciją
rsort,
kuri rūšiuoja pagal elementų mažėjimą -
funkciją
ksort,
kuri rūšiuoja pagal raktų didėjimą -
funkciją
krsort,
kuri rūšiuoja pagal raktų mažėjimą -
funkciją
asort,
kuri rūšiuoja pagal elementų didėjimą išsaugant raktus -
funkciją
arsort,
kuri rūšiuoja pagal elementų mažėjimą išsaugant raktus -
funkciją
natsort,
kuri rūšiuoja natūralia tvarka -
funkciją
natcasesort,
kuri rūšiuoja natūralia tvarka neatsižvelgiant į raidžių dydį -
funkciją
usort,
kuri rūšiuoja pagal callback funkciją -
funkciją
uksort,
kuri rūšiuoja pagal callback funkciją pagal raktus -
funkciją
uasort,
kuri rūšiuoja pagal callback funkciją išsaugant raktus -
funkciją
array_multisort,
kuri rūšiuoja kelis masyvus