Php 从目录结构创建数组

Php 从目录结构创建数组,php,Php,我需要迭代目录结构,并将其推送到具有特殊结构的数组中。所以我有下一个目录结构 收集 | | ---建筑物 | | | | |---希腊 | | | | | | ||--1.php ||--2.php | | | | |---罗马 | | | | |--1.php |--3.php | | ---树木 | | ---常青树 | | | | |--1.php |-2.php | | --

我需要迭代目录结构,并将其推送到具有特殊结构的数组中。所以我有下一个目录结构


收集
|
|
---建筑物
|     |
|     |
|---希腊
|     |   |
|     |   |
||--1.php
||--2.php
|     |
|     |
|---罗马
|         | 
|         |
|--1.php
|--3.php
|
|
---树木
|
|
---常青树
|      |
|      |
|--1.php
|-2.php
|
|
---叶子
|
|
---1.php
---2.php

我还使用下面的代码来获取文件夹结构

<pre>
<?php


function dirToArray($dir) {
    $contents = array();
    foreach (scandir($dir) as $node) {
        if ($node == '.' || $node == '..') continue;
        if (is_dir($dir . '/' . $node)) {
            $contents[$node] = dirToArray($dir . '/' . $node);
        } else {
            $contents[] = $node;
        }
    }
    return $contents;
}

$startpath = "path";

$r = dirToArray($startpath);
print_r($r);


?>
</pre>

我通常使用此函数获取文件夹结构



您是否看到了递归迭代器::CATCH_GET_CHILD的示例我不明白它对我有什么帮助。如何获取“buildings”目录。然后查看它是否有子目录。如果它有take-it-name,则添加到结果数组中。然后查看子目录是否有文件,如果有文件名,则添加到结果数组中。然后,如果子目录有另一个文件,请再次查看。如果已添加到结果数组。我需要从子文件夹中取出所有文件,添加到结果数组中。之后,我需要检查父文件夹(“建筑物”)是否有其他子文件夹。如果有,我需要迭代,添加到结果数组中。之后,我需要另取一个“收藏”文件夹并重复操作。你能帮我吗?
<pre>
<?php


function dirToArray($dir) {
    $contents = array();
    foreach (scandir($dir) as $node) {
        if ($node == '.' || $node == '..') continue;
        if (is_dir($dir . '/' . $node)) {
            $contents[$node] = dirToArray($dir . '/' . $node);
        } else {
            $contents[] = $node;
        }
    }
    return $contents;
}

$startpath = "path";

$r = dirToArray($startpath);
print_r($r);


?>
</pre>