Einsatz von usort(), uasort() und uksort()
Sollten Sie Ihre eigene Vorstellung eines sortierten Arrays haben, können Sie die Funktionen usort(), uasort() und uksort() einsetzen. Gegenüber den bereits beschriebenen Variationen können Sie als zusätzlichen Parameter eine Funktion übergeben, die bestimmte Sortiermerkmale festlegt. Die Funktion muss den Sortiervorgang nach folgendem Schema durch Rückgabe eines bestimmten Code steuern:
- 0 – Zwei miteinander verglichene Werte sind gleich.
- 1 – Der zweite Parameter ist größer als der erste.
- -1 – Der erste Parameter ist größer als der zweite.
Entsprechend interpretiert PHP beim Sortiervorgang dies als Einordnungskriterium.
Beispiel – aufsteigend
<?php
$personen = array (
"ma"=>"Matthias",
"ca"=>"Caroline",
"gü"=>"Gülten",
"to"=>"Toni",
"mi"=>"Maria",
"do"=>"Doro"
);
function vergleich($a, $b) {
if ($a == $b) return 0;
elseif ($a > $b) return 1;
else return -1;
}
uksort($personen, vergleich);
// Ausgabe
foreach($personen as $key=>$element) {
echo "$key: $element<br>";
}
?>
Ausgabe
ca: Caroline
do: Doro
gü: Gülten
ma: Matthias
mi: Maria
to: Toni
Beispiel – absteigend
<?php
$personen = array (
"ma"=>"Matthias",
"ca"=>"Caroline",
"gü"=>"Gülten",
"to"=>"Toni",
"mi"=>"Maria",
"do"=>"Doro"
);
function vergleich($a, $b) {
if ($a == $b) return 0;
elseif ($a > $b) return -1;
else return 1;
}
uksort($personen, vergleich);
// Ausgabe
foreach($personen as $key=>$element) {
echo "$key: $element<br>";
}
?>
Ausgabe
to: Toni
mi: Maria
ma: Matthias
gü: Gülten
do: Doro
ca: Caroline
|