php 分类代码,PHP高效的无限级分类代码

PHP高效的无限级分类代码

发布时间:2018-03-15

编辑:夏桀

阅读(680)

class Tree{

public $ret = '';

/**

* 获取树型结构

* @param 数组 $data

* @param 父id $pid

* @param 层级 $count

* @return array()

*/

public function tree(&$data,$pid = 0,$level = 1) {

foreach ($data as $key => $value){

if($value['parent_id']==$pid){

$value['level'] = $level;

$this->ret[]=$value;

unset($data[$key]);

$this->tree($data,$value['id'],$level+1);

}

}

return $this->ret;

}

}

?>使用方法对数据库数组按parent_id进行asc排序

实例化Tree类,调用tree方法,得到排序后的数据

在页面中循环输出,level为层级,用于生成树形结构实际运用/**

* 分类

*/

public function category(){

$categoryModel = new BlogCategory();

$result = $categoryModel->order(["parent_id"=>"ASC","list_order" => "ASC"])->select()->toArray();

$tree = new Tree();

$category = $tree->tree($result);

foreach ($category as $n => $t) {

$category[$n]['icon_level'] =$this->_getIconLevel($category[$n]['level']);

}

$this->assign('category', $category);

return $this->fetch();

}

protected function _getIconLevel($level=1){

$icon = ['   │ ', '   ├─ '];

$str='';

for ($i=1;$i

if(($level-$i)==1){

$str.=$icon['1'];

}else{

$str.=$icon['0'];

}

}

return $str;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值