2009-12-12 110 views
-1

我可以得到一個排序的文件名列表下面的代碼:的PHP文件名排序

$log_files = scandir(LLP_LOG_DIR); 
$sorted = sort($log_files); 

的文件名格式爲X.log,其中X是一個漸進的數值。

我該如何解決越來越

0.log 
1.log 
10.log 
11.log 
2.log 
3.log 

的問題,其中的通緝的結果是

0.log 
1.log 
2.log 
3.log 
[..] 
9.log 
10.log 
11.log 
[..] 

我可以剝離爲「.log」的字符串,它們排序等,但什麼是最高效的方式?

+0

php有一個不錯的頁面比較排序功能。閱讀。 – cweiske 2011-04-03 12:49:27

回答

7

嘗試natsort代替,

natsort($log_files) 
1

設置的sortSORT_NUMERIC的第二個參數有數字排序:

$sorted = $log_files; 
sort($sorted, SORT_NUMERIC); 

並注意與第一個參數給出的變量sort種類的陣列。 sort的返回值僅爲布爾值的值。

0

改爲嘗試natcasesort。

natcasesort($array); 

因爲natsort區分大小寫。