Probleme beim sortieren meines array
knut
- php
Ich möchte gerne mein Array $europe, sortieren, und zwar nach der City
[0] => Array
(
[city] => Österreich
[people] => 6500000
)
[1] => Array
(
[city] => Albanien
[people] => 4000000
)
[2] => Array
(
[city] => Belgien
[people] => 3000000
)
Aber ich bekomme es nicht hin:
print_r(array_sort($europe, 'city', SORT_DESC));
Hello,
Ich möchte gerne mein Array $europe, sortieren, und zwar nach der City
print_r(array_sort($europe, 'city', SORT_DESC));
IMHO sind die Standardsortierfunktionen von PHP nicht in der Lage "in die Tiefe" zu schauen - du willst ja nicht auf der ersten Ebene des Array sortieren, sondern in jeden Eintrag reinschauen und dort nach einem Inhalt sortieren. Siehe z.B. Multi dimensional arrays.
MfG
Rouven
Meine Herren!
IMHO sind die Standardsortierfunktionen von PHP nicht in der Lage "in die Tiefe" zu schauen
Doch, man kann die u*sort-Funktionen von PHP nutzen, diese erwarten eine Vergleichsfunktion (Callback) als Parameter.
Für die gegebenen Daten ginge das zum Beispiel so:
usort( $europe, function( $a, $b ) {
return strcmp( $a['city'], $b['city'] );
});
Moin!
IMHO sind die Standardsortierfunktionen von PHP nicht in der Lage "in die Tiefe" zu schauen
Doch, man kann die u*sort-Funktionen von PHP nutzen, diese erwarten eine Vergleichsfunktion (Callback) als Parameter.
Das ist aber keine "Standardsortierfunktion" mehr - diese Funktion erwartet ja eine ebenfalls vom Programmierer übergebene Vergleichsfunktion mit den Details. Man kann also nicht einfach "sortieren", sondern muss auch noch sagen, was in der Sortierordnung vorne und was hinten stehen soll.
- Sven Rautenberg