亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php遍歷樹的常用方法匯總

2024-05-04 23:36:25
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php遍歷樹的常用方法,實例分析了php常用的三種遍歷樹的技巧,需要的朋友可以參考下

本文實例講述了php遍歷樹的常用方法。分享給大家供大家參考。具體如下:

一、遞歸的深度優先的算法:

 

 
  1. <?php 
  2. define('DS', DIRECTORY_SEPARATOR); 
  3. function rec_list_files($from = '.'
  4. if(!is_dir($from)) { 
  5. return array(); 
  6. $files = array(); 
  7. if($dh = opendir($from)) 
  8. while(false !== ($file = readdir($dh))) { 
  9. if($file == '.' || $file == '..') { 
  10. continue
  11. $path = $from . DS . $file
  12.  
  13. if (is_file($path)) { 
  14. $files[] = $path
  15. $files = array_merge($files, rec_list_files($path)); 
  16. closedir($dh); 
  17. return $files
  18. function profile($func$trydir
  19. $mem1 = memory_get_usage(); 
  20. echo '<pre>----------------------- Test run for '.$func.'() '
  21. flush(); 
  22. $time_start = microtime(true); 
  23. $list = $func($trydir); 
  24. //print_r($list); 
  25. $time = microtime(true) - $time_start
  26. echo 'Finished : '.count($list).' files</pre>'
  27. $mem2 = memory_get_peak_usage(); 
  28. printf('<pre>Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s</pre>'
  29. ($mem2-$mem1)/1024.0, $time); 
  30. return $list
  31. profile('rec_list_files'"D:/www/server"); 
  32. ?> 

二、遞歸的深度優先的算法(用了一個棧來實現)

 

 
  1. <?php 
  2. define('DS', DIRECTORY_SEPARATOR); 
  3. function deep_first_list_files($from = '.'
  4. if(!is_dir($from)) { 
  5. return false; 
  6. $files = array(); 
  7. $dirs = array($from); 
  8. while(NULL !== ($dir = array_pop($dirs))) { 
  9. if$dh = opendir($dir)) { 
  10. while( false !== ($file = readdir($dh))) { 
  11. if($file == '.' || $file == '..') { 
  12. continue
  13. $path = $dir . DS . $file
  14. if(is_dir($path)) { 
  15. $dirs[] = $path
  16. else { 
  17. $files[] = $path
  18. closedir($dh); 
  19. return $files
  20. function profile($func$trydir
  21. $mem1 = memory_get_usage(); 
  22. echo '<pre>----------------------- Test run for '.$func.'() '
  23. flush(); 
  24. $time_start = microtime(true); 
  25. $list = $func($trydir); 
  26. //print_r($list); 
  27. $time = microtime(true) - $time_start
  28. echo 'Finished : '.count($list).' files</pre>'
  29. $mem2 = memory_get_peak_usage(); 
  30. printf('<pre>Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s</pre>'
  31. ($mem2-$mem1)/1024.0, $time); 
  32. return $list
  33. profile('deep_first_list_files'"D:/www/server"); 
  34. ?> 

三、非遞歸的廣度優先算法(用了一個隊列來實現)

 

 
  1. <?php 
  2. define('DS', DIRECTORY_SEPARATOR); 
  3. function breadth_first_files($from = '.') { 
  4. $queue = array(rtrim($from, DS).DS);// normalize all paths 
  5. $files = array(); 
  6. while($base = array_shift($queue )) { 
  7. if (($handle = opendir($base))) { 
  8. while (($child = readdir($handle)) !== false) { 
  9. if$child == '.' || $child == '..') { 
  10. continue
  11. if (is_dir($base.$child)) { 
  12. $combined_path = $base.$child.DS; 
  13. array_push($queue$combined_path); 
  14. else { 
  15. $files[] = $base.$child
  16. closedir($handle); 
  17. // else unable to open directory => NEXT CHILD 
  18. return $files// end of tree, file not found 
  19. function profile($func$trydir
  20. $mem1 = memory_get_usage(); 
  21. echo '<pre>----------------------- Test run for '.$func.'() '
  22. flush(); 
  23. $time_start = microtime(true); 
  24. $list = $func($trydir); 
  25. //print_r($list); 
  26. $time = microtime(true) - $time_start
  27. echo 'Finished : '.count($list).' files</pre>'
  28. $mem2 = memory_get_peak_usage(); 
  29. printf('<pre>Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s</pre>'
  30. ($mem2-$mem1)/1024.0, $time); 
  31. return $list
  32. profile('breadth_first_files'"D:/www/server"); 
  33. ?> 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍欧美另类| 91久久久国产精品| 日韩美女视频在线观看| 97超级碰碰碰久久久| 国产精品入口夜色视频大尺度| 国产精品免费观看在线| 91国产精品电影| 欧美性猛交xxxx免费看漫画| 性欧美xxxx视频在线观看| 成人网在线免费观看| 欧美在线视频导航| 国产亚洲精品久久久久久777| 在线看国产精品| 日韩中文字幕第一页| zzjj国产精品一区二区| 在线视频免费一区二区| 日本老师69xxx| 97超视频免费观看| 在线观看日韩www视频免费| 国产精品福利片| 亚洲欧美在线免费| 久久青草精品视频免费观看| 狠狠躁夜夜躁人人爽超碰91| 亚洲免费电影在线观看| 亚洲人a成www在线影院| 一夜七次郎国产精品亚洲| 日韩视频一区在线| 91九色蝌蚪国产| 亚洲免费电影在线观看| 欧美一二三视频| 57pao成人国产永久免费| 在线性视频日韩欧美| 国产精品中文字幕在线| 91美女片黄在线观看游戏| 中文字幕日韩专区| 欧美激情欧美激情| 91精品国产成人| 亚洲第一网站男人都懂| 亚洲午夜精品久久久久久久久久久久| 精品日本高清在线播放| 日韩国产高清视频在线| 狠狠色狠色综合曰曰| 午夜精品久久久99热福利| 欧美激情一级欧美精品| 亚洲欧美在线x视频| 亚洲精品一区在线观看香蕉| 欧美电影院免费观看| 亚洲精品美女在线观看播放| 91精品国产色综合久久不卡98| 亚洲free性xxxx护士hd| 国产suv精品一区二区三区88区| 欧美综合在线第二页| 琪琪亚洲精品午夜在线| 亚洲天堂av女优| 欧美日韩爱爱视频| 久久中国妇女中文字幕| 国产美女精品免费电影| 亚洲精品电影在线观看| 成人在线视频福利| 亚洲精品欧美极品| 一个色综合导航| 国产精品亚洲第一区| 欧美—级a级欧美特级ar全黄| 日本中文字幕不卡免费| 欧美激情一区二区三区久久久| 国产精品大陆在线观看| 久久久久久亚洲精品中文字幕| 精品视频在线播放| 日韩视频在线一区| 久久这里只有精品视频首页| 亚洲日韩第一页| 日韩中文字幕在线观看| 久久久久久久影视| 91久久久久久久久| 国产亚洲一区二区精品| 欧美大尺度电影在线观看| 欧美国产亚洲视频| 亚洲图片欧洲图片av| 91精品国产99| 亚洲视频在线观看| 日韩av免费看网站| 亚洲aⅴ男人的天堂在线观看| 伊人伊成久久人综合网站| 久久久精品网站| 日韩av影院在线观看| 97超碰蝌蚪网人人做人人爽| 久久精品2019中文字幕| 国产精品丝袜一区二区三区| 久久久久免费视频| 69av在线视频| 国产成人av网址| 亚洲伊人久久大香线蕉av| 黄色一区二区在线观看| 国产精品免费久久久| 亚洲欧美日韩国产中文| 91精品中文在线| 亚洲自拍小视频免费观看| 国产精品揄拍一区二区| 国产成人精品日本亚洲| 久久99久久99精品免观看粉嫩| 国产精品久久av| 自拍偷拍亚洲精品| 午夜精品一区二区三区在线视| 亚洲在线观看视频| 亚洲成人激情在线| 中文字幕欧美视频在线| 日本19禁啪啪免费观看www| 日韩精品高清视频| 欧美日韩一区二区在线播放| 成人黄色激情网| 97在线视频国产| 色综合久综合久久综合久鬼88| 超碰日本道色综合久久综合| 欧美成人亚洲成人日韩成人| 亚洲色图15p| 亚洲视频精品在线| 91香蕉嫩草神马影院在线观看| 久久视频在线观看免费| www.日韩视频| 91亚洲精品久久久久久久久久久久| xxx欧美精品| 久久久久久久久久国产精品| 91欧美精品午夜性色福利在线| 一个人看的www久久| 久久激情视频久久| 亚洲天堂av在线免费| 日韩成人性视频| 中文字幕欧美亚洲| 最近2019年中文视频免费在线观看| 亚洲free性xxxx护士白浆| 久久99精品视频一区97| 最新中文字幕亚洲| 亚洲国产一区二区三区在线观看| 久久久久北条麻妃免费看| 日韩精品有码在线观看| 狠狠躁夜夜躁人人爽天天天天97| 日韩美女写真福利在线观看| 日韩有码在线电影| www.日韩视频| 亚洲情综合五月天| 97视频在线观看免费高清完整版在线观看| 国产一区二区丝袜高跟鞋图片| 一区二区三区四区视频| 国产精品久久久久91| 亚洲精品中文字幕女同| 日韩有码片在线观看| 91网在线免费观看| 2019中文在线观看| 欧美电影在线观看完整版| 欧美激情视频给我| 国产亚洲福利一区| 国产91精品在线播放| 色偷偷9999www| 欧洲美女7788成人免费视频| 亚洲成人免费网站| 亚洲国产成人爱av在线播放| 另类少妇人与禽zozz0性伦| 136fldh精品导航福利| 欧美专区在线观看| 亚洲电影中文字幕| 国产日产欧美精品| 国模精品视频一区二区三区| 亚洲午夜av久久乱码| 精品视频在线播放色网色视频|