悲哀日记,2004-12-12,记解将字符串解析成树

博客主要讲述在2004年12月12日10点至11点37分解决了将包含多个目录的数组解析成树状结构的问题,并给出了构建目录树的代码实现,通过函数CreateTree对目录数组进行处理。

北京时间:2004-12-12 大约10点 至 2004-12-12 11:37 解决,如何将
 $Dirs=Array("C:","C:/Apache","C:/Apache/Apache2","C:/Apache/Apache2/bin","C:/Apache/Apache2/bin/iconv",
 "C:/Apache/Apache2/cgi-bin","C:/Apache/Apache2/conf","C:/Apache/Apache2/error","C:/Apache/Apache2/error/include",
 "C:/Downloads","D:","D:/JBuilder9","D:/JBuilder9/bin","D:/JBuilder9/doc","D:/程序",
 "D:/程序/CRM_Trade","D:/程序/语句生成器");

解析成树状结构: 最终解成:

*C:
**Apache
***Apache2
****bin
*****iconv
****cgi-bin
****conf
****error
*****include
**Downloads
*D:
**JBuilder9
***bin
***doc
**程序
***CRM_Trade
***语句生成器

该解析问题困挠时间,(2004-12-9 星期四 至 加2004-12-12 星期五) 原因:一直以为是用递归解决.思路不清昕,急于求成的想做出FTP 信息游览项目。

源:
 $Dirs=Array("C:","C:/Apache","C:/Apache/Apache2","C:/Apache/Apache2/bin","C:/Apache/Apache2/bin/iconv",
 "C:/Apache/Apache2/cgi-bin","C:/Apache/Apache2/conf","C:/Apache/Apache2/error","C:/Apache/Apache2/error/include",
 "C:/Downloads","D:","D:/JBuilder9","D:/JBuilder9/bin","D:/JBuilder9/doc","D:/程序",
 "D:/程序/CRM_Trade","D:/程序/语句生成器");


  //构建目录树
 function CreateTree($directory){
   $parent="";
   $level=1;
   $i=0;
   $n=count($directory);
   $cc=0;$pre=0;
  
   echo "<table border=1>";
  
  for($i=0;$i<$n;$i++) {                   
          $s=explode("/",$directory[$i]);
         // print_r($s);
          $cc=count($s); 
          if ($cc>$pre){
           $level=$cc;                        
          }
          else {
           if ($cc<$pre){
            $level=$cc;           
           }
          }          
          echo "<tr>";
          for ($k=0;$k<($level);$k++){
            echo "<td>*</td>";
          } 
          echo "<td>".$s[$level-1]."</td>";
          $pre=$cc;
          echo "</tr>";

   
   
  }
   echo "</table>"; 


 }
 CreateTree($Dirs);

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值