生成无限极分类
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 父级分类id public 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; }