php解析多维数组保存,PHP:递归遍历结果保存到多维数组

请问,如何使用php实现递归遍历给定路径(比如:$path = c:)下的所有子目录,运行后能将目录名称保存为如下格式

array

'a' =>

array

0 => string 'a1' (length=2)

1 => string 'a2' (length=2)

2 => string 'a3' (length=2)

'b' =>

array

'b1' =>

array

0 => string 'b11' (length=3)

1 => string 'b12' (length=3)

0 => string 'b2' (length=2)

'c' =>

array

0 => string 'c1' (length=2)

1 => string 'c2' (length=2)

'c3' =>

array

0 => string 'c31' (length=3)

1 => string 'c32' (length=3)

我目前实现的,只能将结果保存到一维数组中,代码如下:

function get_subdir_path($path,&$dir_array,$sub_dir = TRUE)

{

global $files_array;

if (is_dir($path))

{

if($handle = opendir($path))

{

while (($file = readdir($handle))!=false)

{

if ($file !="." && $file != "..")

{

$temp_path = $path ."/".$file;

if (is_dir($temp_path)){

array_push($dir_array,$temp_path);

if ($sub_dir==TRUE) {

get_subdir_path($temp_path,$dir_array);

}

}

}

}

}

}

}

类似如下图所示:

bVb86a

回复内容:

请问,如何使用php实现递归遍历给定路径(比如:$path = c:)下的所有子目录,运行后能将目录名称保存为如下格式

array

'a' =>

array

0 => string 'a1' (length=2)

1 => string 'a2' (length=2)

2 => string 'a3' (length=2)

'b' =>

array

'b1' =>

array

0 => string 'b11' (length=3)

1 => string 'b12' (length=3)

0 => string 'b2' (length=2)

'c' =>

array

0 => string 'c1' (length=2)

1 => string 'c2' (length=2)

'c3' =>

array

0 => string 'c31' (length=3)

1 => string 'c32' (length=3)

我目前实现的,只能将结果保存到一维数组中,代码如下:

function get_subdir_path($path,&$dir_array,$sub_dir = TRUE)

{

global $files_array;

if (is_dir($path))

{

if($handle = opendir($path))

{

while (($file = readdir($handle))!=false)

{

if ($file !="." && $file != "..")

{

$temp_path = $path ."/".$file;

if (is_dir($temp_path)){

array_push($dir_array,$temp_path);

if ($sub_dir==TRUE) {

get_subdir_path($temp_path,$dir_array);

}

}

}

}

}

}

}

类似如下图所示:

bVb86a

今天刚刚说完一个人又来了一个范例。

少年,请问你看到最后面的一串花括号你头疼么?整整有8级以上的缩进啊,这还能让人看么!果断要差评好不好!

function scan_rescursive($directory) {

$res = array();

foreach(glob("$directory/*") as $item) {

if(is_dir($item)) {

$folder = end(explode('/', $item));

$res[$folder] = scan_rescursive($item);

continue;

}

$res[] = basename($item);

}

return $res;

}

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值