递归遍历目录并返回结构数组

函数

function recursion_path($path = './')
{
	$list = get_filelist($path);
	if(empty($list)) return false;
	$r = array();
	foreach($list as $l){
		if(!file_exists($path.$l)) continue;
		if(is_dir($path.$l)){
			$r[$l] = recursion_path($path.$l.'/');
		} else {
			$r[] = $l;
		}
	}
	return $r;
}

使用

遍历当前目录

$tree = recursion_path('./');
dump($tree);

输出

array(6) {
  [".svn"]=>
  array(5) {
    ["prop-base"]=>
    array(1) {
      [0]=>
      string(17) ".project.svn-base"
    }
    [0]=>
    string(7) "entries"
    ["text-base"]=>
    array(3) {
      [0]=>
      string(17) ".project.svn-base"
      [1]=>
      string(19) ".buildpath.svn-base"
      [2]=>
      string(18) "index.php.svn-base"
    }
...