2010-12-30 14 views
6

Czy ktoś może mi powiedzieć, jak posortować tablicę zawierającą nazwy plików rozpoczynające się od liczb? Ponieważ struny, które zaczynają się 11, 12, 13 itd są uważane za niższe niż 2, to scewing moje wyniki tak:PHP - sortowanie tablic nazw plików za pomocą liczb?

 
[0] "1. File one.pdf" 
[1] "11. File eleven.pdf" 
[2] "12. File twelve.pdf" 
[3] "2. File two.pdf" 
[4] "3. File three.pdf" 

Czy mogę coś zrobić, aby rozwiązać te prawidłowo?

Odpowiedz

6

Możesz użyć natsort. lub natcasesort, w którym nie ma znaczenia wielkość liter. Jeśli jest więcej niż liczb (np. Znaki diakrytyczne), powinieneś upewnić się, że używasz odpowiedniego locale.

Jeśli to nie wystarczy, np. chcesz także sortować literały liczbowe ("jeden", "dwa", "trzy"), możesz użyć usort, który pozwala użyć twojego niestandardowego wywołania zwrotnego jako funkcji porównującej.

+0

Perfect! Dziękuję i wszystkim, którzy włożyli odpowiedź. – Tim

+0

Dzięki! natsort wykonał pracę! –

Powiązane problemy