2009-12-12 99 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区分大小写。