for -> foreach
Минимизировать вызовы функций
Избегать конкатенации
Юзать ссылки вместо копирования, где можно
Не знаю решения, которое распараллелит все в вебе, но для консоли pcntl_fork и погнали.
Конкретные рецепты есть в документации самого РНР.
В конце концов введите признак, по которому можно разделить входные данные и обрабатывайте принудительно части, в соответствии с этим признаком.
Без референсов тяжело рассуждать.