以前实现无限分类都没好好研究过,今天突然来兴趣就随手写了一个递归的无限极分类,希望对大家有借鉴意义!
<?php /*模拟数据库查询出来的分类数据*/ $data = array( array('id'=>1,'name'=>1,'fid'=>0), array('id'=>2,'name'=>2,'fid'=>0), array('id'=>3,'name'=>3,'fid'=>0), array('id'=>4,'name'=>4,'fid'=>1), array('id'=>5,'name'=>5,'fid'=>2), array('id'=>6,'name'=>6,'fid'=>3), array('id'=>7,'name'=>7,'fid'=>4), array('id'=>8,'name'=>8,'fid'=>9), array('id'=>9,'name'=>9,'fid'=>4) ); /** * 无限分类递归函数 * @param array $data 分类信息 * @param string $fid 父类id * @param integer $pad 页面显示的缩进大小 * @return string 拼接好的菜单(可以根据具体需求做修改) */ function menu(&$data, $fid, $pad=0) { if(count($data) < 1) { return; } //拼接字符串 $str = ''; foreach ($data as $key => $value) { if($value['fid'] == $fid) { $str .= str_repeat(' ', $pad); $str .= $value['name'].'<br />'; unset($data[$key]); //递归 $str .= menu($data,$value['id'],$pad+1); } } return $str; } echo menu($data,0); /*结果 1 4 7 9 8 2 5 3 6 */
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦