0
我正在使用PHP.net上的一個函數,該函數遞歸檢查目錄及其內容。它爲每個子目錄創建一個嵌套數組,這些數組的元素與文件名相對應。跨遞歸函數跟蹤狀態
它不跟蹤文件路徑。這就是我想要的。下面的代碼:
function get_directory_tree($outerDir, $filters = array()){
$dirs = array_diff(
scandir($outerDir),
array_merge(Array(".", ".."), $filters)
);
$dir_array = Array();
foreach($dirs as $d){
if(is_dir($outerDir."/".$d)){
$dir_array[ $d ] = get_directory_tree($outerDir."/".$d, $filters);
} else {
$dir_array[ $d ] = $d;
}
}
return $dir_array;
}
,並將其輸出爲我的測試案例:
Array(
[a] => Array(
[aa] => Array(
[hjkl.txt] => hjkl.txt
)
[asdf.txt] => asdf.txt
)
[b] => Array()
[c] => Array()
)
而這正是我想它想的輸出:
Array(
[a] => Array(
[aa] => Array(
[hjkl.txt] => 'a/aa/hjkl.txt'
)
[asdf.txt] => 'a/asdf.txt'
)
[b] => Array()
[c] => Array()
)
乾杯!遞歸使我的大腦模糊不清。 – 2011-12-23 18:55:13