数组生成树(迭代)

285 阅读1分钟
public function getNavTree($lists, $level = 1, $parent_id = 0, $now_level = 1)
{
    $result = array();

    if(!$lists || $level < $now_level) {
        return false;
    }

    foreach($lists as $k => $v){
        if($v['parent_id'] == $parent_id && $level >= $now_level){
            unset($lists[$k]);
            if(!empty($lists)){
                $child = $this->getNavTree($lists, $level, $v['id'], $now_level + 1);
                if(!empty($child)){
                    $v['children'] = $child;
                }
            }
            $result[] = $v;
        }
    }

    return $result;
}