PHP 递归遍历文件夹到多维数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 递归遍历文件夹到多维数组相关的知识,希望对你有一定的参考价值。
<?php
error_reporting(E_ALL);
header('Content-Type: text/plain; charset=utf-8');
$dir = dirname(__FILE__).'/';
$tree = dir_tree($dir);
print_r($tree);
function dir_tree($dir)
{
static $tree = array();
static $child = false;
// Detect the current branch to append files/directories to
if ($child !== false && isset($tree[$child]))
{
$branch =& $tree[$child];
}
else
{
$branch =& $tree;
}
// Force trailing slash on directory
$dir = rtrim($dir, '/').'/';
$dirlen = strlen($dir);
// Find files/directories
$items = glob($dir.'*');
foreach($items as $key => $item)
{
// Get basename
$base = pathinfo($item, PATHINFO_BASENAME); //substr($item, $dirlen);
// always skip dot files
if ($base[0] == '.') continue;
// If file
if(is_file($item) && is_readable($item))
{
$branch[] = $base;
$child = false;
continue;
}
// If directory
if(is_dir($item) && is_readable($item))
{
// Dirty hack to get around PHP's numerical index rules
if (ctype_digit($base))
$base = '~'.$base;
$branch[$base] = array();
$child = $base;
dir_tree($item);
continue;
}
}
// Only return from the root call
if ($child === false)
return $tree;
}
以上是关于PHP 递归遍历文件夹到多维数组的主要内容,如果未能解决你的问题,请参考以下文章
PHP 递归遍历多维数组
php无限极分类递归写入多维数组的方法
如何在 PHP 中循环遍历多维数组并按名称递归删除键?
js递归(二)——合并多维数组
求教一个JQ 遍历 生成多维数组的问题
php中多维数组的问题