Алгоритм такой:
1. Проитерировать все 5 массивов, записать ключи в отдельный массив.
2. Выбросить все неуникальные ключи.
3. Проитерировать этот отдельный массив и внутри цикла проверить наличие ключа в каждом из 5 массивов, если ключа нет - добавить с дефолтным значением.
Во-первых, idAttribute нужно указывать в модели, а не в коллекции.
Во-вторых, если он у вас равен 'id', то вообще не нужно его указывать - это дефолтное значение.
php не для разработки игр (по крайней мере на вашем уровне).
Хотите писать игры - делайте это на js, хотите изучать php - пишите сайты.
На данном этапе от фреймворков будет больше вреда, чем пользы - прежде чем учиться бегать, нужно научиться ходить.
Алексей Уколов
@alexey-m-ukolov Куратор тега Веб-разработка
Потому что никто уже давно не делает обработку каждого URL отдельным физическим файлом (привет, Битрикс!). Используется роутинг фреймворка, и добавлять в URL расширение никакого смысла нет.
Алексей Уколов
@alexey-m-ukolov Куратор тега Веб-разработка
Как правильнее решать только вам, но мне кажется, что необходимость подтверждать свой телефон при первом заходе на сайт - это слишком.
Если вы предоставляете услуги, то зачем вообще такая сложная форма регистрации? Спрашивайте контактные данные, а остальное пусть менеджер узнает.