php树的遍历,php遍历树的常用方法汇总

搜索热词

本文实例讲述了PHP遍历树的常用方法。分享给大家供大家参考。具体如下:

一、递归的深度优先的算法:

PHP;">

PHP

define('DS',DIRECTORY_SEPARATOR);

function rec_list_files($from = '.')

{

if(!is_dir($from)) {

return array();

}

$files = array();

if($dh = opendir($from))

{

while(false !== ($file = readdir($dh))) {

if($file == '.' || $file == '..') {

continue;

}

$path = $from . DS . $file;

if (is_file($path)) {

$files[] = $path;

}

$files = array_merge($files,rec_list_files($path));

}

closedir($dh);

}

return $files;

}

function profile($func,$trydir)

{

$mem1 = memory_get_usage();

echo '----------------------- Test run for '.$func.'() ';

flush();

$time_start = microtime(true);

$list = $func($trydir);

//print_r($list);

$time = microtime(true) - $time_start;

echo 'Finished : '.count($list).' files';

$mem2 = memory_get_peak_usage();

printf('Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s',($mem2-$mem1)/1024.0,$time);

return $list;

}

profile('rec_list_files',"D:\www\server");

?>

二、递归的深度优先的算法(用了一个栈来实现)

PHP;">

三、非递归的广度优先算法(用了一个队列来实现)

PHP;">

NEXT CHILD

}

return $files; // end of tree,file not found

}

function profile($func,$time);

return $list;

}

profile('breadth_first_files',"D:\www\server");

?>

希望本文所述对大家的PHP程序设计有所帮助。

总结

以上是编程之家为你收集整理的php遍历树的常用方法汇总全部内容,希望文章能够帮你解决php遍历树的常用方法汇总所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值