Как избегать foreach внутри foreach?
Сделать его не явным
Очень часто вижу на разных форумах, в коммах в вк и тд юзать цикл внутри цикла не правильно
Глупости. Если у вас структура данных - массив массивов даже заюзав какой-нить array_map/array_values/array_keys/array_merge/... вы все равно будете использовать двойной цикл, пусть и не явно. В случае рекурсивного обхода у вас будет точно так же цикл внутри цикла и тоже не явно.
Каким образом можно сделать это по другому(правильно) ?
Написать цикл внутри цикла и не выпендриваться.