classProductdirmodelextendsModel { Public functionGetproductdir ($dirId){ //$dirId = 591 } Public functionF$dirId){ $val=$this->test ($dirId); $data[' Children ']=$val; return $val; /*$productDirs = $this->f2 ($dirId); foreach ($productDirs as $productDir) {$tempArray [' children '] = array (' id ' = = $productDir [' dir_id '], ' text ' => ; $productDir [' dir_name ']); F ($productDir [dir_id]); } return $tempArray; */ } Public functionTest$dirId){ $productDirs=$this->F2 ($dirId); $val=Array(); foreach($productDirs as $k){ $v=Array(); $v[' id '] =$k[' dir_id ']; $v[' text '] =$k[' Dir_name ']; $v[' expanded '] =true; $tempArray=$this->test ($k[' dir_id ']); if(Count($tempArray)! = 0){ $v[' children '] =$tempArray; $v[' leaf '] =false; }Else{ $v[' leaf '] =true; } $val[] =$v; } return $val; } Public functionF2 ($dirId){ $map=Array(); $map[' dir_parent_id '] =$dirId; $returnInfo=$this->field (' Dir_id,dir_name ')->where ($map),Select (); return $returnInfo; }}
A traversal algorithm