Heim  >  Fragen und Antworten  >  Hauptteil

ThinkPHP unbegrenzte Kategorien

So führen Sie eine unbegrenzte Klassifizierung basierend auf ID und PID durch

高洛峰高洛峰2663 Tage vor581

Antworte allen(3)Ich werde antworten

  • 迷茫

    迷茫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;
        }

    Antwort
    0
  • ringa_lee

    ringa_lee2017-06-05 11:10:01

    用递归来循环出一个数组

    Antwort
    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;
    
    }

    Antwort
    0
  • StornierenAntwort