繁体   English   中英

PHP动态多维数组创建

[英]PHP dynamic multidimensional array creation

我正在扫描一个文件夹,该文件夹是PHP的子文件夹。 我想将文件夹和文件存储在PHP数组中,以便可以在另一个页面中创建树形视图。 这是我获取文件路径的格式:

  • /home/project/index.php
  • /home/project/folder/myclass.php
  • /home/project/folder/myclass2.php
  • /home/project/folder/subfolder/anotherclass.php

我想在以下数组中获取这些文件:

  • [home] [project] = array('index.php')
  • [首页] [项目] [文件夹] =数组(myclass.php,myclass2.php)
  • [首页] [项目] [文件夹] [子文件夹] =数组(anotherclass.php)

请注意,文件夹结构可以随时更改。 我该如何实现?

最简单的方法是使用内置(SPL) DirectoryIterator类和简单的递归函数。

一个未经测试的示例:

public function directoryToArray($directoryPath)
{
  $items = new DirectoryIterator($directoryPath);
  $data  = array();

  foreach($items as $item) {
    $name = $item->getFileName();

    if ($item->isFile()) {
      $data[] = $name;
    } 
    else if ($item->isDir()) {
      $data[$name] = directoryToArray($item->getPath());
    }
  }
  return $data;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM