Generating infinite pole classifications
Private functionGettree ($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;}
Call:
$newarr = $this->gettree ($arr, 0, 0);
Find all parent classification information based on the subclass ID
Method One:
//$arr All categorized list//$id parent category ID Public Static functionGet_parent_list ($arr,$id){ Static $list=Array(); foreach($arr as $u) { if($u[' ID ']==$id) { //parent class ID equals the ID you are looking for $list[]=$u; if($u[' parent_id ']>0) { self:: Get_parent_list ($arr,$u[' parent_id ']); } } } return $list; }
Method Two: Recursive query to take the classification information
//$id Sub-column ID to query Public Static functionGet_parents ($id){ Static $list= []; //Yii2 Frame $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;}
Get data for all subordinate subclass IDs based on parent ID
//$id = parent id $array = ALL categories Public functionGetson ($id,$array){ Static $list; foreach($array as $k=$v) { if($v[' parent_id '] = =$id) { $list[] =$array[$k]; Self:: Getson ($v[' ID '],$array); } } return $list;}
Unlimited pole classification for PHP