toArray(); return self::buildNodeTree($list); } protected static function buildNodeTree($list): array { $newList = []; $repeatString = "      "; foreach ($list as $vo) { if ($vo['type'] == 1) { $newList[] = $vo; foreach ($list as $v) { if ($v['type'] == 2 && str_contains($v['node'], $vo['node'] . '/')) { $v['node'] = "{$repeatString}├{$repeatString}" . $v['node']; $newList[] = $v; } } } } return $newList; } }