无限级分类:
需要有函数递归调用的基础。
效果如下
第一点:程序如何排序好栏目
第二点:空格程序如何控制 下面代码案例中的$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 '
';
?>