Using a repeater field would be the only way to allow them to add an arbitrary number of something. Otherwise you’d need to duplicate the fields that you’re using code for each instance. A repeater field would allow you to do a loop and make the coding easier as well.
If all the links are internal to the site you might also want to look at the relationship field. This will let you choose multiple internal posts and then you can loop through the relationship fields to get the url and title of the page to look through.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users