hmm ja bym to zrobił tak:
za każdym razem pozbierał do tablicy wszystkie elementy i później posortował bąbelkowo
albo zbieranie do tablicy ale sortowanie już w trakcie wpisywania do tablicy przykład:
katalog ma 5 plików (5.txt ; 100.txt ; 150.txt ; 450.txt ; 8.txt)
zbierasz po kolei odczytany plik to 5.txt ląduje on na 1 miejscu w tablicy, następny odczytany plik to 100.txt, tutaj następuje sprawdzanie czy 100 jest większe od 1 miejsca w tablicy, tym razem tak więc 100.txt ma teraz 1 miejsce a 5.txt zostaje przeniesione na drugie miejsce w tablicy. Przy plikach 150.txt ; 450.txt skrypt postępuje tak samo w rezultacie wyszła nam tablica - 450.txt ; 150.txt ; 100.txt ; 5.txt - i teraz skrypt napotyka plik 8.txt standardowo sprawdza czy nie jest przypadkiem większy od 1 miejsca w tablicy jeśli nie porównuje z drugim, trzecim, czwartym, piątym, ... n-tym miejscem w tablicy, jeśli nie napotka mniejszej liczby plik zostanie pominięty jeśli napotka to zastępuje obecny wpis w tablicy i przesuwa resztę o jedno miejsce...
generalnie przy dużej ilości plików obie metody będą osiągały mało zadowalające wyniki, można by się już pokusić i "płytką bazę" na plikach, bądź zastosować już mySQL / SQL...
przy drugim sposobie proponuję użyć explode(), oraz można z góry narzucić wielkość tablicy, przez co teoretycznie 2sposób powinien być bardziej wydajny lecz wszystko wychodzi "w praniu"...
Pozdrawiam