Разница между конструкциями foreach и each в PHP заключается в том, что each выполняет итерацию по одному элементу массива, а foreach — по всем элементам. 2
foreach следует использовать для перебора коллекции и выполнения с ней какой-то логики. 1 Если то, что в ней содержится, влияет на другие функции программы, то лучше использовать этот цикл. 1
each следует использовать, если нужно каким-либо образом изменить коллекцию. 1 Например, если нужно изменить каждый элемент в массиве. 1
Также foreach не позволяет изменять значение элемента массива, по которому выполняется итерация, если только не передать массив по ссылке. 1 each позволяет это делать, так как оборачивает функцию PHP array_map(). 1
Выбор между конструкциями зависит от конкретных требований проекта.