model = new ModelSuperClass(); } /** * 获取分类列表 * * @return void */ public function getList() { $list = $this->model->field('id,cid,main_name,son_name,imgurl,parent_id,next_name')->where(['status' => 1])->select(); $res = $this->getTree($list); return $res; } private function getTree($array) { //遍历数组,按照id作为键名重新组建新的数组 $new_array = []; foreach ($array as $v) { $v = $v->toArray(); $new_array[$v['id']] = $v; } $return_tree = []; foreach ($new_array as $kk => $vv) { if (isset($new_array[$vv['parent_id']])) { if(!isset($new_array[$vv['parent_id']]['sons'])) $new_array[$vv['parent_id']]['sons'] = []; $new_array[$vv['parent_id']]['sons'][] = &$new_array[$kk]; } else { $return_tree[] = &$new_array[$kk]; } } return $return_tree; } }