我想获得目录及其所有子目录中所有文件的列表。 我已经制作了以下代码,但我不明白为什么它一直给我一个空数组。 就像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, ...)
提前感谢您的帮助。
答案 0 :(得分:3)
array_merge返回合并的数组,因此您需要执行以下操作:
$array_files = array_merge($array_files, self::get_all_files($dir.'/'.$file));