Sim*_*mon 6 php filesystems arrays tree multidimensional-array
我想创建一个文件树,为此我需要将文件和目录数组转换为多维文件树数组.例如:
array
(
'file.txt',
'dir1/',
'dir1/dir2/',
'dir1/dir2/dir3/',
'dir1/file.txt',
)
Run Code Online (Sandbox Code Playgroud)
至
array
(
'file.txt',
'dir1' =>
array
(
'dir2' =>
array
(
'dir3' =>
array(),
),
'file.txt',
)
)
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个函数来完成这个,但是没有它们起作用.我遇到的问题,例如没有简单的方法来转换array ('test','test','test'),'test'为$array['test']['test']['test'] = 'test'.
这是一个较短的递归:
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;
}
Run Code Online (Sandbox Code Playgroud)