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 []; } }