当前位置: 首页 > 面试题库 >

PHP中目录结构的深度递归数组

羿易安
2023-03-14
问题内容

我试图将硬盘上的某些文件夹放入阵列中。

例如,度假图片。假设我们具有以下结构:

  • 套装1
    • 第一组的项目1
    • 第一组的项目2
    • 第1套​​的项目〜
  • 套装2
    • 组2的子集1
    • 组2的子集1的项目1
    • 组2的子集1的项目…
    • 第2组的子集2
    • 随机文件,而不是目录。
  • 套装3

我想要像这样的东西作为数组。
意思是我有1个大数组,在那个数组中有更多数组。每个集合和子集都有自己的数组。

我正在尝试使其看起来像这样:

Array
(
    [Set 1] => Array([0] => Item 1 of Set 1, [1] => Item 1 of Set 1,...)
    [Set 2] => Array([Subnet 1] => Array([0] => Item 1 of Subset 1 of Set 2,[1] => ...), [Subnet 2] => Array([0] => ..., ..., ...), ..., [0] => Random File)
    [set 3] => Array(...)
    ...
)

我碰到了这个:http : //www.the-art-of-
web.com/php/dirlist/

但这不是我想要的。我一直在干预它,但是它给我带来的只有麻烦。

这是一个示例,查看更大分辨率的源代码(显然没有单击…)。


问题答案:

我建议使用DirectoryIterator构建阵列

这是我快速汇总的一个片段,但是我目前没有可以对其进行测试的环境,因此请准备对其进行调试。

$fileData = fillArrayWithFileNodes( new DirectoryIterator( '/path/to/root/' ) );

function fillArrayWithFileNodes( DirectoryIterator $dir )
{
  $data = array();
  foreach ( $dir as $node )
  {
    if ( $node->isDir() && !$node->isDot() )
    {
      $data[$node->getFilename()] = fillArrayWithFileNodes( new DirectoryIterator( $node->getPathname() ) );
    }
    else if ( $node->isFile() )
    {
      $data[] = $node->getFilename();
    }
  }
  return $data;
}


 类似资料:
  • 问题内容: 我需要递归处理目录树中的所有文件,但是深度有限。 例如,这意味着要在当前目录和前两个子目录级别中查找文件,但不能再查找任何文件。在这种情况下,我必须处理,但不能处理。 我将如何在Python 3中做到最好? 目前,我使用这样的循环来处理所有文件直至无限深度: 我可以想到一种计数目录分隔符()的方法,以确定当前文件的层次级别,如果该级别超过所需的最大值,则确定循环。 当存在大量要忽略的子

  • 问题内容: 我有此功能返回: } 但是我想做的是搜索文件/文件夹并返回它的路径,我该怎么做?你有这样的功能,或者可以给我一些技巧吗? 问题答案: 尝试结合使用RecursiveIteratorIterator和RecursiveDirectoryIterator

  • 我想以前也有人问过类似的问题,但我不知道我想做的事情在逻辑上是否可行。 我目前在我们的内部网上使用DDSmoothMenu列出我们所有员工都可以访问的文档。 菜单结构类似于: 菜单的基本结构如下: 我认为它必须涉及某种多维数组和递归目录迭代器,但我希望遍历每个文件夹并创建如上所述的HTML布局。 我认为可以做开始标记,但不确定在目录全部列出后如何做结束标记。

  • 我不明白为什么我会得到这个最大深度错误。iam试图使用bst递归方法在数组中查找数字索引,下面是我的代码 任何人都可以告诉我代码块中发生了什么 错误块: PS C:\Users\admin\Desktop\DSA

  • 问题内容: 我有一个简单的问题…我正在尝试使用切片在Golang中重现此递归数据结构。 现在,我在下面使用带有切片的递归数据结构的“粗糙”源代码,除了我输入的结构是结构而不是结构片之外,其他所有东西都可以正常工作。理想情况下,我希望类型化的递归数据结构是Trie的一部分,其中包含元素Trie {byte,[] Trie}。希望这有意义吗?现在,我有一个Trie struct {byte,[] Tr

  • 问题内容: 目录类似于: 我正在使用与PHPMyAdmin使用的相同的PHPZip类。我不确定如何压缩目录而不是仅压缩文件。这是我到目前为止的内容: 但是当我尝试解压缩相应的已下载的zip文件时,出现“不允许操作” 仅当我尝试在Mac上解压缩时,才出现此错误,当我通过命令行解压缩时,文件解压缩就可以了。我是否需要在下载时发送特定的内容类型,当前为“application / zip” 问题答案: