生成无限极分类
private function GetTree($arr,$pid,$step){ ???global $tree; ???foreach($arr as $key=>$val) { ???????if($val[‘pid‘] == $pid) { ???????????$flg = str_repeat(‘└―‘,$step); ???????????$val[‘name‘] = $flg.$val[‘name‘]; ???????????$tree[] = $val; ???????????$this->GetTree($arr , $val[‘cid‘] ,$step+1); ???????} ???} ???return $tree;}
调用:
$newarr = $this->GetTree($arr, 0, 0);
根据子类id查找出所有父级分类信息
方法一:
//$arr 所有分类列表 //$id 父级分类idpublic static function get_parent_list($arr,$id){ ???????static $list=array(); ???????foreach($arr as $u) ??????{ ???????????if($u[‘id‘]== $id) ???????????{ ??//父级分类id等于所查找的id ???????????????$list[]=$u; ???????????????if($u[‘parent_id‘]>0) ???????????????{ ???????????????????self::get_parent_list($arr,$u[‘parent_id‘]); ???????????????} ???????????} ???????} ??????return $list; } ???????????????
方法二:递归查询取分类信息
// $id ?要查询的 子栏目id public static function get_parents($id){ ???????static $list = []; ???????// Yii2 框架 ????????$cat_data = Category::findOne($id)->toarray(); ???????if($cat_data) ??????{ ???????????$list[] = $cat_data; ???????????$id = $cat_data[‘parent_id‘]; ????????????if($cat_data[‘parent_id‘] > 0) ???????????{ ???????????????self::get_parents($id); ????????????} ???????} ???????return $list;} ????
根据父id获得所有下级子类id的数据
//$id = 父级id ?$array = 所有分类public function getSon($id,$array){ ???????static $list; ???????foreach ($array as $k => $v) ???????{ ???????????if($v[‘parent_id‘] == $id) ???????????{ ???????????????$list[] = $array[$k]; ???????????????self::getSon($v[‘id‘],$array); ???????????} ???????} ???????return $list;}
php实现无限极分类
原文地址:https://www.cnblogs.com/xuey/p/8629487.html