• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

usort() Strings vergleichen

Mark

Neues Mitglied
Ich habe eine recht grosse, usort() Funktion, die zuerst mal einige Vorbedingungen aussortiert, aber wenn diese Vorbedingungen alle nicht zutreffen, kommt am Ende ein String-Vergleich.
Problem dabei ist, dass mit strcmp() Zahlen in Strings nicht richtig sortiert werden, z.B. 17 wird vor 5 sortiert.
Wenn es nur um den String ginge, wäre array_multisort() eine Lösung, aber ich brauche meine Vorsortierung.

Gibt es eine Funktion, die beim Vergleich von

$a = "Text 99 Text";

und

$b = "Text 123 Text";

erkennt dass $a < $b ist?
 
Wie hast du dir das denn vorgestellt. Willst du das der Computer dir sagt, dass Baum größer als Stuhl ist? Man vergieicht normalerweise Zahlen nach größer/kleiner.

Daher solltest du die Zahlen in den Strings rausfiltern und als Integer überprüfen.
 
Danke für die Antwort, ich habe gerade eben die Antwort selber gefunden, sie heisst

strnatcmp()

Das scheint selbst für Google kein offensichtlicher Treffer zu sein, zumindest musste ich eine Weile suchen bis ich die Funktion bei php.net dann gefunden habe.
 
Zurück
Oben