Popis
void
usort
( array array, string cmp_function)
Tato
funkce
třídí
pole
podle
hodnot
pomocí
uživatelsky
definované
porovnávací
funkce
.
Pokud
potřebujete
třídit
pole
podle
komplikovanějších
kritérií
,
měli
byste
použít
tuto
funkci
.
Porovnávací
funkce
musí
vrace
integer
menší
než
0
,
0
,
a
větší
než
0
,
pokud
je
první
argument
menší
než
,
stejný
,
nebo
větší
než
druhý
argument
.
Pokud
jsou
dvě
porovnávané
hodnoty
stejné
,
jejich
pořadí
v
tříděném
poli
je
nedefinováno
.
Příklad
1
.
Ukázka
usort(
)
|
Tato
ukázka
zobrazí
:
Poznámka
:
V
tomto
jednoduchém
případě
by
pochopitelně
bylo
vhodnější
použít
rsort(
)
.
Příklad
2
.
Ukázka
usort(
)
s
vícerozměrným
polem
function
cmp
(
$a
,
$b
)
{
return
strcmp($a["fruit"],$b["fruit"])
;
}
$fruits[0]["fruit"
]
=
"lemons"
;
$fruits[1]["fruit"
]
=
"apples"
;
$fruits[2]["fruit"
]
=
"grapes"
;
usort($fruits
,
"cmp")
;
while
(list
($key
,
$value
)
=
each
($fruits)
)
{
echo
"\$fruits[$key]
:
"
.
$value["fruit"
]
.
"\n"
;
}
|
|
Při
třídění
vícerozměrného
pole
$a
a
$b
obsahují
reference
na
první
index
pole
.
Tato
ukázka
zobrazí
:
Varování
|
Použitá
quicksort
funkce
v
některých
C
knihovnách
(
např
.
na
systémech
Solaris
)
může
způsobit
zhroucení
PHP
,
pokud
porovnávací
funkce
nevrací
konsistentní
hodnoty
.
|
Viz
také
:
uasort(
)
,
uksort(
)
,
sort(
)
,
asort(
)
,
arsort(
)
,
ksort(
)
,
natsort(
)
a
rsort(
)
.