Il semble que vous modifiiez la variable $link à l'intérieur de la boucle foreach. Vous ajoutez donc l'élément1 à $link, parcourez ses sous-éléments et revenez à la première itération et ajoutez l'élément2 à la variable...
remplacer ceci
$link .= "/".$category['url_nl'];
avec
$insidelink = $link . "/".$category['url_nl'];
(et changez le $link restant à l'intérieur de la boucle en $insidelink)
Ajout :cela est également vrai pour $startingLevel. Ne le modifiez pas, utilisez +1 en ligne :
echo "<li>".$start." - ".$startingLevel +1.
"<a href='$link'>{$category['menu_nl']}</a> ($link)</li>\n";