无限分类树形结构

参考了某个哥们(不好意思,忘记叫什么了)的写法。稍微改了一下。不过思路都是一样的。

<?php
  function makeTree($array)
  {
  	 $tree = array();//最后的树型结构
  	 //开始循环判断,如果为顶级,则传址进入树形结构
  	 //否则,则放入上一级结构内
  	 foreach($array as $arr)
  	 {
  	 	//var_dump($arr['pid']!=0);
  	 	if($arr['pid']!=0)
  	 	{
  	 		$array[$arr['pid']-1]['son'][] = &$array[$arr['id']-1];
  	 	}
  	 	else
  	 	{
  	 		$tree[] = &$array[$arr['id']-1];
  	 	}
  	 	
  	 }
  	return $tree;	
  }
  $array = array(
  		array('id'=>1,'pid'=> 0,'name'=>'1J'),
  		array('id'=>2,'pid'=> 1,'name'=>'2J'),
  		array('id'=>3,'pid'=> 2,'name'=>'3J'),
  		array('id'=>4,'pid'=> 0,'name'=>'1J'),
  		array('id'=>5,'pid'=> 2,'name'=>'3J'),
  		array('id'=>6,'pid'=> 3,'name'=>'4J'),
  		);
  echo '<pre>';
  print_r(makeTree($array));
  echo '</pre>';

你可能感兴趣的:(无限分类树形结构)