代码如下:
$arr = array(
array('id'=>1,'name'=>'名称1','pid'=>0,'cid'=>2),
array('id'=>2,'name'=>'名称2','pid'=>0),
array('id'=>3,'name'=>'名称3','pid'=>0),
array('id'=>4,'name'=>'名称4','pid'=>0),
array('id'=>5,'name'=>'名称5','pid'=>0),
array('id'=>6,'name'=>'名称1-1','pid'=>1),
array('id'=>7,'name'=>'名称1-2','pid'=>1),
array('id'=>8,'name'=>'名称2-1','pid'=>2),
array('id'=>9,'name'=>'名称2-2','pid'=>2),
array('id'=>10,'name'=>'名称3-1','pid'=>3),
array('id'=>11,'name'=>'名称1-1-1','pid'=>6),
array('id'=>12,'name'=>'名称1-1-2','pid'=>6),
array('id'=>13,'name'=>'名称1-2-1','pid'=>7),
array('id'=>14,'name'=>'名称2-1-1','pid'=>8),
array('id'=>15,'name'=>'名称2-1-2','pid'=>8),
array('id'=>16,'name'=>'名称2-2-1','pid'=>9),
array('id'=>17,'name'=>'名称2-1-1-1','pid'=>14),
array('id'=>18,'name'=>'名称2-1-2-1','pid'=>15),
array('id'=>19,'name'=>'名称2-1-1-1-1','pid'=>17),
array('id'=>20,'name'=>'名称3-1-1','pid'=>10),
);
function getChildtree($data,$pid = 0,$level = 0){
static $result;
foreach ($data as $key => $info){
if($info['pid'] == $pid){
$info['level'] = $level;
$info['child'] = $info;
$result[] = $info;
unset($data[$key]);
getChildtree($data,$info['id'],$level+1);
}
}
return $result;
}
调用:
$childtree = $this->getChildtree($arr);
print_r($childtree);
这样不能处理成树形结构的,用静态变量怎么处理成树形结构的?