递归算法

php 无限分类   父子级

1.递归关键要找到终止无限调用的条件。2. 使用两次或多次循环,寻找关键索引,通过组合或者引用实现多层级递归,提升效率和内存使用量

  static function buildLevel(array &$allAuth,array &$allParent,int $parentId=0)
    {
        if(in_array($parentId, $allParent))
        {
            $auth = [];
            foreach ($allAuth as $k => $v)
            {
                //先得到顶级菜单
                if($v->parent == $parentId)
                {
                    $auth[$v->id] = $v;
                    $auth[$v->id]->children = self::buildLevel($allAuth,$allParent,$v->id);
                    unset($allAuth[$k]);
                }
            }
            return $auth;
        }
        else
        {
            return [];
        }
    }
原文地址:https://www.cnblogs.com/BeautyFuture/p/6677139.html