2011-10-10 21 views
12

Come posso invertire l'ordinamento per nome file? Attualmente visualizza tutti i file di testo in ordine alfabetico/numerico, ma sto cercando di visualizzarlo in ordine decrescente. In questo momento, ho ...glob() - Ordina per Nome

<?php 
foreach (glob("*.txt") as $filename) { 
    include($filename); 
} 
?> 

Sono abbastanza nuovo per PHP, ma ho cercato usort con matrice aggiunto il ma che appena portato in esso la visualizzazione di solo 1 delle file di testo, quindi o che doesn' lavoro o ho semplicemente sbagliato.

+1

La funzione di ordinamento inverso sarebbe 'rsort()' ma deve essere un'istruzione separata con una variabile di matrice temporanea. – mario

+0

Mi sono imbattuto in qualche problema di ordinamento alfabetico percepito, ma il problema di fondo è che le lettere minuscole hanno valori ASCII più alti di quelli maiuscoli. Un nome file come myphoto1.jpg viene restituito dopo myPhoto2.jpg a causa della capitale P. –

risposta

19

È possibile utilizzare array_reverse:

foreach(array_reverse(glob("*.txt")) as $filename) { ... 
2

Il modo per farlo con usort() sarebbe ...

usort($files, function($a, $b) { 
    return strcmp($b, $a); 
}); 

CodePad.