[], 'ungrouped' => []]; $bookmarkGroups = is_array($bookmarkData['groups'] ?? null) ? $bookmarkData['groups'] : []; $bookmarkUngrouped = is_array($bookmarkData['ungrouped'] ?? null) ? $bookmarkData['ungrouped'] : []; $currentPath = trim((string) ($bookmarkNav['current_path'] ?? '')); $existing = null; if ($currentPath !== '') { foreach ($bookmarkUngrouped as $bookmark) { $bookmarkUrl = BookmarkUrlNormalizer::canonicalizeRelative((string) ($bookmark['url'] ?? '')); if ($bookmarkUrl !== '' && $bookmarkUrl === $currentPath) { $existing = $bookmark; break; } } if ($existing === null) { foreach ($bookmarkGroups as $group) { foreach ((is_array($group['bookmarks'] ?? null) ? $group['bookmarks'] : []) as $bookmark) { $bookmarkUrl = BookmarkUrlNormalizer::canonicalizeRelative((string) ($bookmark['url'] ?? '')); if ($bookmarkUrl !== '' && $bookmarkUrl === $currentPath) { $existing = $bookmark; break 2; } } } } } ?>