简单的无限分类中递归子栏目

  1. <?php  
  2.   
  3. /* 
  4.  * 找子栏目 
  5.  */  
  6.   
  7. $area=array(  
  8. array('id'=>1,'name'=>'中国','parent'=>0),  
  9. array('id'=>2,'name'=>'广东','parent'=>1),  
  10. array('id'=>3,'name'=>'深圳','parent'=>2),  
  11. array('id'=>4,'name'=>'湖南','parent'=>1),  
  12. array('id'=>5,'name'=>'长沙','parent'=>4)      
  13. );  
  14.   
  15. function findson($arr,$id=0) {  
  16.       $son=array();  
  17.     foreach ($arr as $value) {  
  18.         if ($value['parent']==$id) {  
  19.             $son[]=$value;  
  20.         }  
  21.     }  
  22.     return $son;  
  23. }  
  24.   
  25. /* 
  26.  * 找子孙树 
  27.  * @param array 传入的数组 
  28.  * @param int  传入的id 
  29.  */  
  30.   
  31. function substree($arr,$id=0,$level=1) {  
  32.        static $grandson=array();  
  33.       
  34.     foreach ($arr as $value) {  
  35.         if ($value['parent']==$id) {  
  36.             $value['level']=$level;  
  37.             $grandson[]=$value;  
  38.             substree($arr,$value['id'],$level+1);  
  39.         }  
  40.     }  
  41.       return $grandson;  
  42. }  
  43.   
  44. //var_dump( findson($area,1));  
  45. echo  "</br>";  
  46. //var_dump(substree($area,2));  
  47.   
  48. /* 
  49.  * 为了让它显示缩进效果 
  50.  */  
  51. $tt=substree($area,0,1);  
  52.   
  53.    foreach ($tt as $value) {  
  54.      echo str_repeat('  '$value["level"]).$value["name"]."</br>";  
  55.    }  
  56.      
  57. ?> 

你可能感兴趣的:(简单的无限分类中递归子栏目)