Es sieht so aus, als ob Sie die $link-Variable innerhalb der foreach-Schleife ändern. Sie fügen also item1 zu $link hinzu, durchlaufen seine Unterelemente und kehren zur ersten Iteration zurück und fügen item2 zur Variablen hinzu ...
ersetzen Sie diese
$link .= "/".$category['url_nl'];
mit
$insidelink = $link . "/".$category['url_nl'];
(und ändern Sie den verbleibenden $link innerhalb der Schleife in $insidelink)
Hinzufügen:Dies gilt auch für $startingLevel. Ändern Sie es nicht, verwenden Sie +1 inline:
echo "<li>".$start." - ".$startingLevel +1.
"<a href='$link'>{$category['menu_nl']}</a> ($link)</li>\n";