Sponsored Links |
|
||||
Auf die schnelle fällt mir nur ein, dass Du einmal durch alle Dateinamen durchläufst, wobei Du in einem Array die Dateinamen speicherst und in einem Array die Zahlen, die nach dem '_' kommen.
Anschließend kannst Du dann das Array mit den Dateinamen mit Hilfe des Arrays, wo die Zahlen drin stehen sortieren, mittels: PHP: array_multisort - Manual |
Sponsored Links |
|
||||
Du meinst so:
Code:
#!/usr/bin/perl -w use strict; my @arr = <DATA>; print map { $_->[0]} sort {$a->[1] <=> $b->[1] } map {[$_, /.*_(\d*)\./]} @arr; __DATA__ file_1.jpg file_10.jpg file_11.jpg file_12.jpg file_13.jpg file_2.jpg file_20.jpg file_21.jpg |
|
||||
In C wäre das relativ einfach:
Code:
qsort( files, anzahl_elemente, grpesse_eines_elements, vergleich); ... vergleich( char *A, char *B ) { a = atoi( A + 5); b = atoi( B + 5); if ( a == b) return 0; return a<b ? -1 : 1; } |
|
||||
Was ich immer wieder vergesse: Es gibt auch noch die Funktion PHP: usort - Manual, wo man eine benutzerdefinierte Vergleichsfunktion angeben kann, diese müsste dann nur entsprechend die Zahlen aus dem Dateinamen extrahieren und vergleichen.
// Edit: natsort() ist natürlich besser. |
|
||||
natsort() könnte man so machen:
Code:
vergleich( char *A, char *B ) { char *ap, *bp; for ( ap=A; *ap && ! isdigit(*ap); ap++); for ( bp=B; *bp && ! isdigit(*bp); bp++); a = atoi( ap); b = atoi( bp); if ( a == b) return 0; return a<b ? -1 : 1; } |
Sponsored Links |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Mysql Sortierung / Gruppierung | uspri | Serveradministration und serverseitige Scripte | 6 | 25.01.2011 11:03 |
Sortierung von Inhalten aus unterschiedlichen Tabellen einer DB | Magellan | Serveradministration und serverseitige Scripte | 7 | 11.07.2010 14:39 |
Encoding der Dateinamen auf Windows | Pablo | Serveradministration und serverseitige Scripte | 6 | 04.06.2008 00:17 |
Dateinamen? Dateistruktur | Finrod | Offtopic | 23 | 14.08.2005 20:51 |
Mysql Umlaut Sortierung | axx | (X)HTML | 6 | 09.03.2005 12:03 |