В чём смысл передавать array_reverse в foreach без явной необходимости обратного порядка элементов?
Для ответов на подобные вопросы всегда полезно использовать логику.
Например:
Если необходимости в обратном порядке элементов нет, то array_reverse не нужна.
Если array_reverse используется - значит, скорее всего, необходимость есть, но вы её просто не видите.

Это универсальный способ, который позволяет ответить на можество подобных вопросов.

"оставить исходный массив нетронутым" причиной не является.
Для ответов на подобные вопросы всегда полезно использовать логику.
Например:
Если необходимости в обратном порядке элементов нет, то array_reverse не нужна.
Если array_reverse используется - значит, скорее всего, необходимость есть, но вы её просто не видите.

Это универсальный способ, который позволяет ответить на можество подобных вопросов.

"оставить исходный массив нетронутым" причиной не является.