我想创建一个文件树,为此我需要将文件和目录数组转换为多维文件树数组。例如:
array
(
'file.txt',
'dir1/',
'dir1/dir2/',
'dir1/dir2/dir3/',
'dir1/file.txt',
)
到
array
(
'file.txt',
'dir1' =>
array
(
'dir2' =>
array
(
'dir3' =>
array(),
),
'file.txt',
)
)
我已经尝试了几个函数来完成这个,但没有一个起作用。例如,我遇到的问题是没有简单的方法将 array ('test','test','test'),'test'
转换为 $array['测试']['测试']['测试'] = '测试'
。
最佳答案
这是一个较短的递归:
function dir_tree($dir) {
$files = array_map('basename', glob("$dir/*"));
foreach($files as $file) {
if(is_dir("$dir/$file")) {
$return[$file] = dir_tree("$dir/$file");
} else {
$return[] = $file;
}
}
return $return;
}
关于PHP - 创建动态多维文件树数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573131/