Зачем эта функция возвращает массив? Она как-то меняет переданные в неё данные?
Функция должна делать что-то одно - либо проверять данные, либо изменять их
вы написали целый ответ, который вообще не бьётся с условиями, описанными в вопросе.
я так понимаю, что вас, как и автора вопроса, логика не интересует - главное написать что-нибудь с умным видом
но спамер - это я (:
Может, всё-таки скопировать ровно тот код, который выполняется и выдаёт ошибку?
А то как-то странно спрашивать, что не так в коде, который в телефоне набит
Функция должна делать что-то одно - либо проверять данные, либо изменять их