首页 > 其他 > 详细

无限极分类方法

时间:2018-09-12 11:54:16      阅读:202      评论:0      收藏:0      [点我收藏+]

仅供参考:

//控制器
$data = M(‘category‘)->select();
$datas = D(‘Category‘)->_getTree($data, 0,0,TRUE);
$this->assign(‘data‘,$datas);
$this->display();

 


//递归取出分类
public function _getTree($data, $parent_id=0, $level=0, $isClear = FALSE){
static $ret = array();
if($isClear)
$ret = array();
foreach ($data as $k => $v)
{
if($v[‘parentid‘] == $parent_id)
{
// 把level放到这个权限中用来标记当前这个权限是第几级的
$v[‘level‘] = $level;
$ret[] = $v;
// 再找当前这个权限的子权限
$this->_getTree($data, $v[‘id‘], $level+1);
}
}
return $ret;
}

 

public function _getTrees($array, $pid =0, $level = 0){
//声明静态数组,避免递归调用时,多次声明导致数组覆盖
static $list = [];
foreach ($array as $key => $value){
// print_r($value);die;
//第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点
if ($value[‘parentid‘] == $pid){
//父节点为根节点的节点,级别为0,也就是第一级
$value[‘level‘] = $level;
//把数组放到list中
$list[] = $value;
//把这个节点从数组中移除,减少后续递归消耗
// unset($array[$key]);
//开始递归,查找父ID为该节点ID的节点,级别则为原级别+1
$this-> _getTrees($array, $value[‘id‘], $level+1);

}
}
return $list;
}

无限极分类方法

原文:https://www.cnblogs.com/dalaowang/p/9633903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!