我想要做的是递归遍历所有文件夹并从每个文件中收集一个 $arr ,我稍后将合并。用高级术语来说,这就是我正在做的事情:
function main(){
$path = ....
$arr = array();
if(is_dir($path)){
$arr = parseFolder($path, $arr);
} else {
$arr = parseFile($path);
}
print $arr;
}
function parseFile($path){
....
return $arr
}
function parseFolder($path, $arr){
$folder = opendir($path);
while($item=readdir($folder)){
if(is_dir($item)
parseFolder($path . '/' . $item, $arr);
else
$arr = merge_array($arr, parseFile($path . '/' . $item);
}
return $arr
}
正如您所看到的,这会出现问题,因为我没有基本案例。因此,它最终会在 parseFolder 函数中多次返回 $arr。有没有办法知道我什么时候几乎完成了对所有文件/文件夹的迭代,所以我知道什么时候返回我的最终结果 $arr?我对更有效的实施持开放态度。