<?php header("Content-Type:text/html;charset=utf-8"); /* 家谱树的应用,如面包屑导航,首页 > 手机类型 > GSM手机 > iPhone > iPhone6s */ $aarr = array( array('id'=>1,'name'=>'安徽','pid'=>0), array('id'=>2,'name'=>'海淀','pid'=>7), array('id'=>3,'name'=>'浣溪县','pid'=>5), array('id'=>4,'name'=>'昌平','pid'=>7), array('id'=>5,'name'=>'淮北','pid'=>1), array('id'=>6,'name'=>'朝阳','pid'=>7), array('id'=>7,'name'=>'北京','pid'=>0), array('id'=>8,'name'=>'上地','pid'=>2) ); function familytree($arr,$id){ static $tree = array(); foreach($arr as $v){ if($v['id'] == $id){ $tree[] = $v; //以找到上地为例 //判断要不要找父栏目 if($v['pid'] > 0){ //pid大于0证明有子栏目 familytree($arr,$v['pid']); } } } return $tree; } echo '<pre>'; print_r(familytree($aarr,8));