当前位置: 首页 > 后端技术 > PHP

php中两种无限分类方法的例子

时间:2023-03-30 00:18:54 PHP

本文主要介绍PHP中两种无限分类方法的例子。,递归方法  复制代码代码如下:  $items=array(  array('id'=>1,'pid'=>0,'name'=>'11级'),  array('id'=>2,'pid'=>0,'name'=>'12级'),  array('id'=>3,'pid'=>1,'name'=>'中学21'),  array('id'=>4,'pid'=>3,'name'=>'三级31'),  array('id'=>5,'pid'=>1,'name'=>'中22'),  array('id'=>6,'pid'=>3,'name'=>'三32级'),  array('id'=>7,'pid'=>6,'name'=>'41级'),  );  $i=0;  functionformatTree($arr,$pid=0){  $tree=array();  $temp=array();  global$i;  if($arr){  foreach($arras$k=>$v){  if($v['pid']==$pid){//  $temp=formatTree($arr,$v['id']);  $temp&&$v['son']=$temp;  $tree[]=$v;  }  }  }  return$tree;  }  print_r(formatTree($items));  二、非递归方法  复制代码代码如下:  functiongenTree($items){  $tree=array();//格式化树  foreach($itemsas$item)  if(isset($items[$item['pid']])){  $items[$item['pid']]['son'][]=&$items[$item['id']];  }  else{  $tree[]=&$items[$item['id']];  }  return$tree;  }  $items=array(  1=>array('id'=>1,'pid'=>0,'name'=>'11级'),  2=>array('id'=>2,'pid'=>1,'name'=>'21级'),  3=>array('id'=>3,'pid'=>1,'name'=>'中学23'),  4=>array('id'=>4,'pid'=>9,'name'=>'三级31'),  5=>array('id'=>5,'pid'=>4,'name'=>'四级43'),  6=>array('id'=>6,'pid'=>9,'name'=>'三级32'),  7=>array('id'=>7,'pid'=>4,'name'=>'41'),  8=>array('id'=>8,'pid'=>4,'name'=>'42级'),  9=>array('id'=>9,'pid'=>1,'name'=>'25级'),  10=>array('id'=>10,'pid'=>11,'name'=>'中22'),  11=>array('id'=>11,'pid'=>0,'name'=>'12级'),  12=>array('id'=>12,'pid'=>11,'name'=>'中24'),  13=>array('id'=>13,'pid'=>4,'name'=>'44级'),  14=>array('id'=>14,'pid'=>1,'name'=>'26级'),  15=>array('id'=>15,'pid域名交易'=>8,'name'=>'51'),  16=>array('id'=>16,'pid'=>8,'name'=>'52级'),  17=>array('id'=>17,'pid'=>8,'name'=>'53级'),  18=>array('id'=>18,'pid'=>16,'name'=>'64'),  );  print_r(genTree($items));