PHP动态多维数组创建
我正在用PHP扫描一个文件夹及其子文件夹中的文件。我想将文件夹和文件存储在PHP数组中,这样我就可以在另一个页面中创建树视图。这是我获取文件路径的格式:PHP动态多维数组创建,php,arrays,data-structures,multidimensional-array,Php,Arrays,Data Structures,Multidimensional Array,我正在用PHP扫描一个文件夹及其子文件夹中的文件。我想将文件夹和文件存储在PHP数组中,这样我就可以在另一个页面中创建树视图。这是我获取文件路径的格式: /home/project/index.php /home/project/folder/myclass.php /home/project/folder/myclass2.php /home/project/folder/subfolder/anotherclass.php 我想在以下数组中获取这些文件: [home][project]
- /home/project/index.php
- /home/project/folder/myclass.php
- /home/project/folder/myclass2.php
- /home/project/folder/subfolder/anotherclass.php
- [home][project]=数组('index.php')
- [home][project][folder]=array(myclass.php,myclass2.php)
- [home][project][folder][subfolder]=array(anotherclass.php)
请注意,文件夹结构可以随时更改。如何实现这一点?最简单的方法是使用内置(SPL)类和简单的递归函数 一个未经测试的例子:
谢谢你的回答。我知道这种方法,但我想知道如何将平面数组转换为多维数组。这将是可行的解决办法,但这不是我想要的答案,谢谢。
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;
}