Funcția usort
Funcția usort sortează o matrice
după valoarea elementelor, folosind pentru
aceasta un callback pentru a determina ordinea
elementelor în matricea sortată.
Funcția modifică însăși matricea.
Funcția de comparare trebuie să returneze un număr întreg, care în funcție de rezultatul comparației: mai mic, egal sau mai mare decât zero.
Sintaxă
usort(array &$array, callable $callback): bool
Exemplu
Haideți să sortăm matricea în ordine crescătoare a elementelor:
<?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);
?>
Rezultatul executării codului:
[1, 2, 3, 4, 5]
Exemplu
Iar acum să sortăm matricea în ordine descrescătoare a elementelor:
<?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);
?>
Rezultatul executării codului:
[1, 2, 3, 4, 5]
Exemplu
Iar acum să sortăm matricea în ordinea crescătoare a numărului de caractere din elementele matricei:
<?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);
?>
Rezultatul executării codului:
[
'1',
'12',
'123',
'1234',
'12345',
]
Vedeți și
-
funcția
sort,
care sortează în ordine crescătoare a elementelor -
funcția
rsort,
care sortează în ordine descrescătoare a elementelor -
funcția
ksort,
care sortează în ordine crescătoare a cheilor -
funcția
krsort,
care sortează în ordine descrescătoare a cheilor -
funcția
asort,
care sortează în ordine crescătoare a elementelor cu păstrarea cheilor -
funcția
arsort,
care sortează în ordine descrescătoare a elementelor cu păstrarea cheilor -
funcția
natsort,
care sortează în mod natural -
funcția
natcasesort,
care sortează în mod natural fără a ține cont de majuscule/minuscule -
funcția
usort,
care sortează după callback -
funcția
uksort,
care sortează după callback după chei -
funcția
uasort,
care sortează după callback cu păstrarea cheilor -
funcția
array_multisort,
care sortează mai multe matrice