php部分,一个用递归无限分类的方法

Posted 业务高于技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php部分,一个用递归无限分类的方法相关的知识,希望对你有一定的参考价值。

<?php
     
   $data[]=array(\'id\'=>1,\'parentid\'=>0,\'name\'=>\'中国\');   
   $data[]=array(\'id\'=>2,\'parentid\'=>0,\'name\'=>\'美国\');   
   $data[]=array(\'id\'=>3,\'parentid\'=>0,\'name\'=>\'韩国\');   
   $data[]=array(\'id\'=>4,\'parentid\'=>1,\'name\'=>\'北京\');  
   $data[]=array(\'id\'=>5,\'parentid\'=>1,\'name\'=>\'上海\');   
   $data[]=array(\'id\'=>6,\'parentid\'=>1,\'name\'=>\'广西\');   
   $data[]=array(\'id\'=>7,\'parentid\'=>6,\'name\'=>\'桂林\');   
   $data[]=array(\'id\'=>8,\'parentid\'=>6,\'name\'=>\'南宁\');   
   $data[]=array(\'id\'=>9,\'parentid\'=>6,\'name\'=>\'柳州\');  
   $data[]=array(\'id\'=>10,\'parentid\'=>2,\'name\'=>\'纽约\');  
   $data[]=array(\'id\'=>11,\'parentid\'=>2,\'name\'=>\'华盛顿\');  
   $data[]=array(\'id\'=>12,\'parentid\'=>3,\'name\'=>\'首尔\'); 
   
     
   $tree=build_tree($data,0);   
   
   print_r($tree); 
  
  
function findChild($arr,$id){  
          $childs=array();   //定义一个数组
          foreach ($arr as $k => $v){    //把父级二维数组遍历
            if($v[\'parentid\']== $id){     //判断子集的parentid的值是不是等于父级id的值
             $childs[]=$v;                //如果等于把这个子集交给变量数组$childs
            }  
          }  
          return $childs;               //返回符合条件的所有子集
} 



function build_tree($rows,$root_id){       //$root_id父级代号
          $childs=findChild($rows,$root_id);  
          if(empty($childs)){            
            return null;  
          } 
        foreach ($childs as $k => $v){      //遍历符合父级id值的数组
          $rescurTree=build_tree($rows,$v[\'id\']);  //把子集再遍历,如果有子集就交给$rescurTree
          if( null != $rescurTree){  
          $childs[$k][\'childs\']=$rescurTree;  //把子集的子集交给$childs[$k][\'childs\'],[\'childs\']是自定义的一个键值
} } return $childs; } ?>

 

 

以上是关于php部分,一个用递归无限分类的方法的主要内容,如果未能解决你的问题,请参考以下文章

php实现无限级分类(递归方法)

几十万条数据用PHP递归能实现无限级分类吗

PHP利用递归函数实现无限级分类的方法_php技巧 - PHP

php之利用递归写无限极分类

php无限极分类实现的方法?

PHP_递归实现无限级分类