AI编程助手
AI免费问答

ThinkPHP无限分类

根据id,pid怎么进行无限分类

# PHP
高洛峰 高洛峰 2914 天前 867 次浏览

全部回复(3) 我要回复

  • 迷茫

    迷茫2017-06-05 11:10:01

    使用遞歸函數,不過我寫這種方法空間複雜度沒有得到優化,忘記以前的寫法了

    private function getTreeList($data, $pid = 0)
        {
            $resultarr = array();
            foreach ($data as $teamdata) {
                if ($teamdata['pid'] == $pid) {
                    $team_data = $teamdata;
                    $children_data = $this->getTreeList($data, $teamdata['id']);
                    $team_data['children'] = $children_data;
                    $resultarr[] = $team_data;
                }
            }
            return $resultarr;
        }

    回复
    0
  • ringa_lee

    ringa_lee2017-06-05 11:10:01

    用递归来循环出一个数组

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-06-05 11:10:01

    public function gettree($items, $parent_id = 'parent_id', $id = 'id'){
        $tree = array(); //格式化好的树
        if(empty($items)){
            return $tree;
        }
        foreach ($items as $item){
            if (isset($items[$item[$parent_id]])){
                $items[$item[$parent_id]]['son'][] = &$items[$item[$id]];
            }else{
                $tree[] = &$items[$item[$id]];
            }
        }
        return $tree;
    
    }

    回复
    0
  • 取消 回复 发送