2012-11-01 82 views
2

我有一個核心的PHP文件,其中我想獲取文件名在一個特定的文件夾與秩序, 我有很多文件,但每個文件名像filename_0,filename_1,filename_2像此所以當過我的文件夾中獲取文件名,是不是正確的順序,我收到filename_0,filename_2,filename_1 ..如何獲取文件夾中的文件名與訂單

$dir_path="/var/lib/myproject"; 
     $folder=dir("$dir_path"); 
        $j=0;$allfilename=''; 
        while($folderEntry=$folder->read()) 
        { 
         if($folderEntry == '.' || $folderEntry == '..') 
         { 
         continue; 
         }else{ 
echo "Path of directory is>>>>>>>>".$folderEntry; 
         $allfilename[]=$folderEntry; 
         $j++; 
         } 
        } 
    $folder->close(); 

我可以獲取文件名,但沒有得到訂單,所以任何順序遞增魔神到filename_0繼續文件名..... 所以任何人都可以知道如何獲得文件名的升序。

+1

不能加載所有文件名並對它們進行排序嗎? http://php.net/manual/en/function.sort.php –

+1

是啊,你打開我的眼睛.. :-) –

回答

3

您可以隨時natsort的文件名數組。

natsort($allfilename); 

注意這裏的自然排序是必要的,因爲你可能要考慮filename_1filename_100之前。另一種選擇是使用sort函數。

sort($allfilename, SORT_NATURAL); 
+0

如果我使用第二個參數「SORT_NATURAL」,那麼會發生什麼? –

+0

@BhavikPatel我想你已經得到了答案。但作爲參考,「SORT_NATURAL」按自然順序排序。它與'natsort'相同。 –

1

您可以使用sort()訂購數組值,(我的意思是將數組中的文件名排序)

sort($allfilename); 

http://php.net/manual/en/function.sort.php

UPDATE:

如果你想保留指數然後用asort

asort - 對數組進行排序並保持索引關係

asort($allfilename); 
+0

如果我使用排序功能,然後得到正確的結果,但我想更新他們的索引也像我的第一數組和排序數組但索引也沒有更新 –

+0

你想保留索引和值? –

相關問題