В чем разница for и foreach?
foreach - с начала и до конца (обычно динамические массивы)
for - от заданного до заданного с шагом (обычно координаты или любые не динамические массивы)
можно и тем и тем пользоваться.
Для перебора массива очень удобен foreach(); а в остальных случаях for(); //конечно могут быть и исключения, зависит от случая