php實現無限極分類
阿新 • • 發佈:2018-03-23
spa var 欄目 所有 cti subst pid Go 查詢
生成無限極分類
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; }
php實現無限極分類