Сергей delphinpro, надо меньше слушать то что автор пишет
ну или точнее внимательнее читать
Когда он пишет "Пользователь на сайте", он понимает, о чем говорит
а когда пишет "rest api" - это он просто красивое слово на дороге подобрал, и вставляет где придётся
можно вызвать с помощью AJAX
Но надо понимать что это потребует дополнительных усилий без какой-либо пользы. Так что лучше потратить свое время и скромный багаж знаний на что-нибудь другое
Я не думаю что тут будет какая-то большая разница.
проблема второго цикла не в том что он "замедляет" код.
Не будем уподобляться Анастасия и заниматься фетешизмом, считая единицы тактов процессора в языке, которому просто чтобы начать выполнять программу, надо сначала их истратить примерно миллиард.
Проблема второго цикла в том, то он усложняет код.
Мой вариант делает ровно то что нужно. Можно просто пройти по коду и понять, что он делает.
Это реализация стандартного алгоритма с запоминанием предыдущего, которая расширена для работы с массивом.
А в вашем варианте надо писать отдельный комментарий, который будет пояснять - зачем нам нужен первый цикл. проблема в читабельности двух циклов, а не в производительности.
Я всё-таки против того, чтобы заниматься измерением производительности на пустом месте. Оптимизировать надо то, что реально тормозит. В остальных случаях достаточно просто здравого смысла.
ну если не выполняется, то при чем здесь добавление в БД?
это у вас html кривой значит, а не добавление в БД
разбирайтесь с формой, почему из неё не передаётся значение
Ну вот я еще утром написал код, который реализует идею, которую я придумал вчера https://phpize.online/?phpses=673858f141c597c2f513...
только я не учел что если старшая категория меняется, то все подчиненные надо тоже выводить, и при проверке это вылезло. пришлось вводить некрасивый флаг
надо убедиться с помощью phpinfo() что вы редактируете тот php.ini, который нужно
и не забыть перезапустить апач
впрочем, всё это вы несомненно уже читали много раз
но вынужден вас разочаровать, никаких других решений у этой проблемы не существует, и искать их бесполезно
Да что ж вы все код-то требуете? А словами уже нельзя, запретили?
В программировании код - дело десятое
Важен алгоритм
Алгоритм стандартный, с запоминанием текущего состояния. Я его описал выше в комментариях.
Тем более что тут и кода-то много не требуется, а только подправить немного
В целом , этот алгоритм реализован во втором цикле верно, но переусложнён
Само понятие $main_category абсолютно излишне - "основная категория" НИЧЕМ не отличается от всех остальных, и обрабатывается на общих основаниях.
то есть городить лишний массив совершенно не обязательно
ragnar_ok, я не работал с последними версиями.
Но и тут написано что
As a best practice, you should only create private services and you should fetch services using dependency injection instead of using $container->get().