无限级分类:
需要有函数递归调用的基础。
效果如下
第一点:程序如何排序好栏目
第二点:空格程序如何控制 下面代码案例中的$lev就关键
栏目1
子栏目1
孙栏目1
孙栏目2
孙栏目3
子栏目2
孙栏目1
孙栏目2
孙栏目3
栏目2
......
栏目3
......
代码案例
1,'name'=>'炒菜类','parent_id'=>0), array('id'=>2,'name'=>'面食类','parent_id'=>0), array('id'=>3,'name'=>'酒水类','parent_id'=>0), array('id'=>4,'name'=>'白酒类','parent_id'=>3), array('id'=>5,'name'=>'啤酒类','parent_id'=>3), array('id'=>6,'name'=>'刀削面','parent_id'=>2), array('id'=>7,'name'=>'拉面类','parent_id'=>2), array('id'=>8,'name'=>'热干面','parent_id'=>2), array('id'=>9,'name'=>'红酒类','parent_id'=>3), array('id'=>10,'name'=>'粤菜类','parent_id'=>1), array('id'=>11,'name'=>'沪菜类','parent_id'=>1), array('id'=>12,'name'=>'湘菜类','parent_id'=>1), array('id'=>13,'name'=>'水果类','parent_id'=>0), array('id'=>14,'name'=>'西瓜类','parent_id'=>13), array('id'=>15,'name'=>'狼桃类','parent_id'=>13), array('id'=>16,'name'=>'榴莲类','parent_id'=>13), array('id'=>17,'name'=>'糕点类','parent_id'=>0), array('id'=>18,'name'=>'切糕类','parent_id'=>17), array('id'=>19,'name'=>'面包类','parent_id'=>17) ); /** * function:无限极分类 * param: * $parent_id 表示父id 0是顶级栏目 * $lev 用来标记栏目的层级的。比如等于0表示顶级栏目,如果等于1表示次级栏目 * return: array **/ function getsort($arr,$parent_id=0,$lev=0){ static $list = array();//静态变量 //要遍历数组 foreach($arr as $v){ if($v['parent_id']==$parent_id){ $v['lev']=$lev;//添加层级关系 $list[]=$v; getsort($arr,$v['id'],$lev+1);//当前栏目的子栏目 } } return $list; } echo '
'; ?>'; print_r( $arr = getsort($arr) ); echo '