2009-07-02 62 views
5

我們可以通過

$files = new DirectoryIterator() 

獲得在PHP目錄中的文件有沒有一種簡單的方法以特定順序的項目顯示它們進行排序?謝謝。

+0

@動靜能量 - 你是中國人嗎? – 2012-05-28 04:29:05

回答

9

它看起來沒有辦法對迭代器中的數據進行排序。

您可以將顯示數據放入中間數組中,並使用您希望排序的值的鍵,然後在數組上調用ksort()。然而,這將需要兩遍數據。

$path = "."; 
$files = new DirectoryIterator($path); 
$files_array = array(); 

while($files->valid()) { 
     // sort key, ie. modified timestamp 
     $key = $files->getMTime(); 
     $data = $files->getFilename(); 
     $files_array[$key] = $data; 
     $files->next(); 
} 
ksort($files_array); 
foreach($files_array as $key => $file){ 
    print $key . " => " . $file . "\n"; 
} 

編輯:

,如果你把所有的信息要在數組值輸出的文件,你可以簡單地破滅()的陣列之後,而不是通過數據循環一次再次。

-4
$files = new DirectoryIterator($path); 
$i = 0; 
$paths = array(); 
while($files->valid()) { 
    $paths[$i++] = $files->getFileName(); 
    $files->next(); 
} 
sort($paths) 

可能是你在找什麼,你可以隨時應用排序功能根據你的喜好對路徑進行排序。

相關問題