Funkcija usort
Funkcija usort kārto masīvu
pēc elementu vērtībām, izmantojot
atsaukšanos, lai noteiktu elementu
secību sakārtotajā masīvā.
Funkcija maina pašu masīvu.
Salīdzināšanas funkcijai jāatgriež vesels skaitlis, kas atkarībā no salīdzināšanas rezultāta: mazāks, vienāds vai lielāks par nulli.
Sintakse
usort(array &$array, callable $callback): bool
Piemērs
Kārtosim masīvu augošā secībā pēc elementiem:
<?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);
?>
Koda izpildes rezultāts:
[1, 2, 3, 4, 5]
Piemērs
Tagad kārtosim masīvu dilstošā secībā pēc elementiem:
<?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);
?>
Koda izpildes rezultāts:
[5, 4, 3, 2, 1]
Piemērs
Tagad kārtosim masīvu augošā secībā pēc simbolu skaita masīva elementos:
<?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);
?>
Koda izpildes rezultāts:
[
'1',
'12',
'123',
'1234',
'12345',
]
Skatiet arī
-
funkciju
sort,
kas kārto pēc elementiem augošā secībā -
funkciju
rsort,
kas kārto pēc elementiem dilstošā secībā -
funkciju
ksort,
kas kārto pēc atslēgām augošā secībā -
funkciju
krsort,
kas kārto pēc atslēgām dilstošā secībā -
funkciju
asort,
kas kārto pēc elementiem augošā secībā, saglabājot atslēgas -
funkciju
arsort,
kas kārto pēc elementiem dilstošā secībā, saglabājot atslēgas -
funkciju
natsort,
kas kārto dabiskajā secībā -
funkciju
natcasesort,
kas kārto dabiskajā secībā, neņemot vērā reģistru -
funkciju
usort,
kas kārto, izmantojot atsaukšanos -
funkciju
uksort,
kas kārto pēc atslēgām, izmantojot atsaukšanos -
funkciju
uasort,
kas kārto, izmantojot atsaukšanos, saglabājot atslēgas -
funkciju
array_multisort,
kas kārto vairākus masīvus