lulu: numerisch-nichtnumerisch-gemischte Werte richtig sortieren

Beitrag lesen

Huhu Sebastian

Wie kann ich erreichen, daß in der richtigen Reihenfolge sortiert wird, also so:

1.9n
1.10d
1.10o
1.10q

???

Mmh, ich vermute mal es soll eine Kapitelnummermäßige Sortierung werden.

Also eine Möglichkeit wäre folgende:

du machst eine foreachschleife über alle Dateinamen,
dann zerlegst du (z.B. mit explode oder preg_match) die bisherige Bezeichnung in die einzelnen Bestandteile (je nachdem wie viele Ebenen Du hast).
Also bei Deinem Beispiel zwei Nummerische und eine alphabetische
Komponente.
Aus denen erzeugst Du einen String der sich dann "richtig" sortieren läßt. (printf)

also z.B.

1.9n  wird zu 001-009-n
1.10d wird zu 001-010-d
1.10o wird zu 001-010-o
1.10q wird zu 001-010-q
etc.

denn so erzeugten "neuen" sortierstring nimmst Du als Key für ein Neues Array

also z.B.

$new_order[$sort_key]=$der_alte_datei_name;

Nachdem das für alle gemacht ist kannst Du mit ksort
das array nach dem Schlüssel sortieren und ausgeben.

Viele Grüße

lulu