Разница между использованием PHP foreach с амперсандом и без него заключается в том, как происходит обработка массива внутри цикла. 13
Без указания амперсанда PHP копирует массив в другое место оперативной памяти и передаёт эту копию в цикл foreach. 1 Когда цикл отработает, копия будет удалена, и исходный массив не будет изменён. 1
С указанием амперсанда (передачей по ссылке) PHP не помещает копию в цикл, а работает с оригинальным значением. 1 То есть с той областью оперативной памяти, где хранится массив. 1
Таким образом, амперсанд позволяет напрямую манипулировать массивом, поскольку извлекает каждое значение по ссылке. 2