PHP - 创建动态多维文件树阵 [英] PHP - create dynamic multidimensional file tree array

查看:113
本文介绍了PHP - 创建动态多维文件树阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个文件树,并为此目的,我需要的文件和目录的数组转换为一个多维的文件树阵。例如:

I want to create a file tree, and for this purpose I need to convert an array of files and directories to a multidimensional file tree array. For example:

array
(
   'file.txt',
   'dir1/',
   'dir1/dir2/',
   'dir1/dir2/dir3/',
   'dir1/file.txt',
)

array
(
   'file.txt',
   'dir1' => 
   array
   (
       'dir2' => 
       array
       (
           'dir3' =>
           array(),
       ),
       'file.txt',
    )
)

我试过几个函数来实现这一点,但他们的工作不。我遇到例如有转换阵列(测试,测试,测试),测试,以$数组['测试'] ['测试'] ['没有简单的方法问题测试'] ='测试'

I've tried several functions to accomplish this, but non of them worked. The problem I've encountered for example that there is no easy way to convert an array ('test','test','test'),'test' to $array['test']['test']['test'] = 'test'

推荐答案

下面是一个较短的递归之一:

Here's a shorter recursive one:

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 - 创建动态多维文件树阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆