Tja, da gibts keine Musterlösung für.
Es geht hier ja um playlists, also gehe ich einfach mal davon aus, das die Listen zum sortieren zum Teil auch aus Dateinamen gebildet werden, ja?
Ich habe da eine Idee, die ist aber wahrscheinlich nicht ganz so schnell umzusetzen.
1.) Du trennst Nummern von Strings.
Will heissen: Du gehst jeden Eintrag der Liste (ggf. sogar direkt am Dateinamen!) zeichen für zeichen durch, und wenn Du eine Änderung von Nummer auf Zeichen oder umgekehrt bemerkst, fügst Du ein Trennzeichen ein. Das µ hat sich hier für mich bewährt, da es a) auf der Tastatur noch leicht zu finden ist und b) fast nie in der freien Wildbahn vorkommt.
2.) Danach gehst Du beim sortieren her, und sortierst verschachtelt für jede Ebene µ's.
Beispiel:
Code:
1µTitel_µ15
3µTitelµ4
1µTitelµ1
wird erst zu:
Code:
1µTitel_µ15
1µTitelµ1
3µTitelµ4
und dann zu:
Code:
1µTitelµ1
1µTitel_µ15
3µTitelµ4
Also immer einen Bereich nach dem anderen sortieren.
Die Bereiche findest Du dann ja mit strpos recht einfach raus, weil die zu 99,999999999% kein fremdes µ da reinrutscht.