zoukankan      html  css  js  c++  java
  • 无限级分类之查找子孙树

     1 <?php 
     2 header("Content-Type:text/html;charset=utf-8");
     3 $cate=array(
     4     array('id'=>1,'name'=>'html','parent'=>0),
     5     array('id'=>2,'name'=>'javascript','parent'=>0),
     6     array('id'=>3,'name'=>'div+css','parent'=>0),
     7     array('id'=>4,'name'=>'linux','parent'=>0),
     8     array('id'=>5,'name'=>'mysql','parent'=>0),
     9     array('id'=>6,'name'=>'其他','parent'=>0),
    10     array('id'=>7,'name'=>'php','parent'=>0),
    11     array('id'=>8,'name'=>'字符串','parent'=>7),
    12     array('id'=>9,'name'=>'数组','parent'=>7),
    13     array('id'=>10,'name'=>'对象','parent'=>7),
    14     array('id'=>11,'name'=>'jquery','parent'=>2),
    15     array('id'=>12,'name'=>'ajax','parent'=>2),
    16     array('id'=>13,'name'=>'存储引擎','parent'=>5),
    17     array('id'=>14,'name'=>'事务','parent'=>5),
    18     array('id'=>15,'name'=>'存储过程','parent'=>5),
    19     array('id'=>16,'name'=>'视图','parent'=>5),
    20     array('id'=>17,'name'=>'基本命令','parent'=>4),
    21     array('id'=>18,'name'=>'网络配置','parent'=>4)
    22 );
    23 
    24 /*
    25  * 利用静态变量来做
    26  * static $con
    27  */
    28 
    29 function findson($arr,$id=0,$lev=1){
    30     static $con=array();
    31     foreach ($arr as $v){
    32         if ($v['parent']==$id){
    33             $v['lev']=$lev;
    34             $con[]=$v;
    35             findson($arr,$v['id'],$lev+1);
    36         }
    37     }
    38     return $con;
    39 }
    40 
    41 $arr=findson($cate,0,1);
    42 
    43 
    44 foreach ($arr as $v){
    45     if($v['lev']>1){
    46         echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;", $v['lev']).$v['name']."<br/>";
    47     }else{
    48         echo $v['name']."<br/>";
    49     }
    50    
    51 }
    52 
    53 
    54 /*
    55  * 不用静态变量
    56  */
    57 
    58 function findson($arr,$id=0,$lev=1){
    59     $con=array();
    60     foreach ($arr as $v){
    61         if ($v['parent']==$id){
    62             $v['lev']=$lev;
    63             $con[]=$v;
    64             $con=array_merge($con,findson($arr,$v['id'],$lev+1));
    65         }
    66     }
    67     return $con;
    68 }
    69 
    70 $arr=findson($cate,0,1);
    71 
    72 
    73 foreach ($arr as $v){
    74     if($v['lev']>1){
    75         echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;", $v['lev']).$v['name']."<br/>";
    76     }else{
    77         echo $v['name']."<br/>";
    78     }
    79      
    80 }
    97 ?>
  • 相关阅读:
    Guava学习笔记(4):Ordering犀利的比较器
    Guava学习笔记(3):复写的Object常用方法
    Guava学习笔记(1):Optional优雅的使用null
    [BZOJ1076][SCOI2008]奖励关
    [BZOJ1821][JSOI2010]部落划分
    [BZOJ1041]圆上的整点
    [Luogu2324]八数码难题
    [BZOJ1085][SCOI2005]骑士精神
    [BZOJ3109] [cqoi2013]新数独
    [LnOI2019]长脖子鹿省选模拟赛 东京夏日相会
  • 原文地址:https://www.cnblogs.com/yhqq512/p/6914524.html
Copyright © 2011-2022 走看看