龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 遍历树的方法一

时间:2014-07-27 02:00来源:网络整理 作者:网络 点击:
分享到:
遍历树的方法一 递归的深度优先的算法[代码片段(44行)]

递归的深度优先的算法

<?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 '<pre>----------------------- 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</pre>';
    $mem2 = memory_get_peak_usage();
    printf('<pre>Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s</pre>',
    ($mem2-$mem1)/1024.0, $time);
    return $list;
}
profile('rec_list_files', "D:\\www\\server");
?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接