private function generateItem(array $item, $level, $num) { $title = 1 === $level ? "Parent {$num}" : "Level {$level} child {$num}"; $result = ['title' => $title, 'url' => TextHelper::urlFormat($title)]; if (0 !== count($item)) { $children = []; $cnt = 0; foreach ($item as $child) { $children[] = $this->generateItem($child, $level + 1, ++$cnt); } $result['children'] = $children; } return $result; }