2013-11-21 51 views
0

我想獲得目錄及其所有子目錄中的所有文件的列表。 我做了下面的代碼,但我不明白爲什麼它不斷給我一個空的數組。 這就好像array_merge沒有合併我的東西。不經意地列出一個目錄中的文件

public static function get_all_files($dir) { 
    $array_files = array(); 
    $files = scandir($dir); 
    foreach ($files as $file) { 
     if ($file == '.' || $file == '..') continue; 
     if (is_dir($dir.'/'.$file)) array_merge($array_files, self::get_all_files($dir.'/'.$file)); 
     else $array_files[] = $file; 
    } 
    return $array_files; 
} 

什麼我期待的回報就是這樣一個數組:

array('file_1', 'file_2', 'file_3, ...) 

在此先感謝您的幫助。

回答

3

array_merge返回合併後的數組,所以你需要做的:

$array_files = array_merge($array_files, self::get_all_files($dir.'/'.$file)); 
+0

非常感謝你,我是如此愚蠢! – Manitoba