无限极分类php实现—查子孙树家谱树

Posted PHP急先锋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无限极分类php实现—查子孙树家谱树相关的知识,希望对你有一定的参考价值。

  1. <?php  
  2.   
  3.   
  4. // 无限级分类中,查家谱树   
  5.   
  6.   
  7. $area = array(  
  8. 0=>array(‘cat_id‘=>1,‘cat_name‘=>‘北京市‘,‘parent_id‘=>0),  
  9. 1=>array(‘cat_id‘=>2,‘cat_name‘=>‘馆陶县‘,‘parent_id‘=>5),  
  10. 2=>array(‘cat_id‘=>3,‘cat_name‘=>‘海淀区‘,‘parent_id‘=>1),  
  11. 3=>array(‘cat_id‘=>4,‘cat_name‘=>‘朝阳区‘,‘parent_id‘=>1),  
  12. 4=>array(‘cat_id‘=>5,‘cat_name‘=>‘邯郸市‘,‘parent_id‘=>6),  
  13. 5=>array(‘cat_id‘=>6,‘cat_name‘=>‘河北省‘,‘parent_id‘=>0),  
  14. );  
  15.   
  16.   
  17. function gettree($arr,$cat_id) {  
  18.         static $list = array();  
  19.         static $num = 0;  
  20.         foreach($arr as $v) {  
  21.          echo ++$num .‘<br />‘;  
  22.             if($v[‘cat_id‘] == $cat_id) {  
  23.                 $num = 0;  
  24.                 gettree($arr,$v[‘parent_id‘]);  
  25.                 $list[] = $v;             
  26.             }  
  27.         }  
  28.   
  29.   
  30.         return $list;  
  31.     }  
  32.   
  33.   
  34. $list = gettree($area,2);  
  35.   
  36.   
  37. print_r($list);  
  38.   
  39.   
  40.   
  41. ?>  

 

  1. <?php  
  2.   
  3. // 无限级分类中,查找子孙树  
  4.   
  5. $area = array(  
  6. 0=>array(‘cat_id‘=>1,‘cat_name‘=>‘北京市‘,‘parent_id‘=>0),  
  7. 1=>array(‘cat_id‘=>2,‘cat_name‘=>‘馆陶县‘,‘parent_id‘=>5),  
  8. 2=>array(‘cat_id‘=>3,‘cat_name‘=>‘海淀区‘,‘parent_id‘=>1),  
  9. 3=>array(‘cat_id‘=>4,‘cat_name‘=>‘朝阳区‘,‘parent_id‘=>1),  
  10. 4=>array(‘cat_id‘=>5,‘cat_name‘=>‘邯郸市‘,‘parent_id‘=>6),  
  11. 5=>array(‘cat_id‘=>6,‘cat_name‘=>‘河北省‘,‘parent_id‘=>0),  
  12. );  
  13.   
  14. function catsort($arr,$parent_id = 0,$lev=1) {  
  15.     static $list = array();  
  16.     static $num = 0;  
  17.     foreach($arr as $v) {  
  18.         echo ++$num . ‘<br />‘;  
  19.         if($v[‘parent_id‘] == $parent_id) {  
  20.             $num = 0;  
  21.             $v[‘lev‘] = $lev;  
  22.             $list[] = $v;  
  23.             catsort($arr,$v[‘cat_id‘],$lev+1);  
  24.         }  
  25.     }  
  26.     return $list;  
  27. }  
  28.   
  29. $list = catsort($area,0,1);  
  30.   
  31. foreach($list as $v) {  
  32.     echo str_repeat(‘    ‘,$v[‘lev‘]),$v[‘cat_name‘],‘<br />‘;  
  33. }  
  34.   
  35. ?>

 

以上是关于无限极分类php实现—查子孙树家谱树的主要内容,如果未能解决你的问题,请参考以下文章

无限极分类中递归查找一个树结构

php 非递归实现分类树

创建无限极分类树型结构

无限极分类查找所有子孙节点的改进算法

PHP中无限极分类函数的实现

递归分类和树形式分类