Funkcja usort
Funkcja usort sortuje tablicę
po wartości elementów, wykorzystując do
tego callback do określenia kolejności
elementów w posortowanej tablicy.
Funkcja modyfikuje samą tablicę.
Funkcja porównująca powinna zwracać liczbę całkowitą, która w zależności od wyniku porównania: mniejszą, równą lub większą od zera.
Składnia
usort(array &$array, callable $callback): bool
Przykład
Posortujmy tablicę rosnąco według elementów:
<?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);
?>
Wynik wykonania kodu:
[1, 2, 3, 4, 5]
Przykład
A teraz posortujmy tablicę malejąco według elementów:
<?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);
?>
Wynik wykonania kodu:
[1, 2, 3, 4, 5]
Przykład
A teraz posortujmy tablicę rosnąco według liczby znaków w elementach tablicy:
<?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);
?>
Wynik wykonania kodu:
[
'1',
'12',
'123',
'1234',
'12345',
]
Zobacz też
-
funkcję
sort,
która sortuje rosnąco według elementów -
funkcję
rsort,
która sortuje malejąco według elementów -
funkcję
ksort,
która sortuje rosnąco według kluczy -
funkcję
krsort,
która sortuje malejąco według kluczy -
funkcję
asort,
która sortuje rosnąco według elementów z zachowaniem kluczy -
funkcję
arsort,
która sortuje malejąco według elementów z zachowaniem kluczy -
funkcję
natsort,
która sortuje w sposób naturalny -
funkcję
natcasesort,
która sortuje w sposób naturalny bez rozróżniania wielkości liter -
funkcję
usort,
która sortuje za pomocą callbacku -
funkcję
uksort,
która sortuje za pomocą callbacku po kluczach -
funkcję
uasort,
która sortuje za pomocą callbacku z zachowaniem kluczy -
funkcję
array_multisort,
która sortuje wiele tablic