文件结构为多维数组

时间:2013-08-15 11:10:55

标签: php directory iteration

我需要将多维数组中的所有目录和文件存储到给定位置(示例:/ path / to / folder)。它应该包括子文件夹,无论多深。

已编辑:

我尝试使用php scandir,它给了我以下结果,

代码:

$dir    = '/path/to/folder';
$files = scandir($dir);
print_r($files);

结果:

Array
(
    [0] => .
    [1] => ..
    [2] => folder1
    [3] => file1
    .....
)

我需要的是获取文件夹1中的内容并持续进行,直到我获得包含所有文件的完整文件夹结构。

P.S:我需要删除“。”和结果数组中的“..”也是如此。

1 个答案:

答案 0 :(得分:9)

用于文件列表php提供readdirscandir函数。

我更喜欢sccandir,因为它是新的(php 5>),我们可以使用以下递归函数。

需要提供目录路径(/ path / to / your / folder)作为参数,它将返回带文件夹结构的多维数组。

function dirToArray($dir) {
    $result = array();
    $cdir = scandir($dir);
    foreach ($cdir as $key => $value) {
        if (!in_array($value,array(".","..")))  {
            if (is_dir($dir . DIRECTORY_SEPARATOR . $value)){
                $result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
            } else {
                $result[] = $value;
            }
        }
    }
    return $result;
}