No, si borras por ejemplo
Código PHP:
Ver original<?php
0 => 'foo',
1 => 'bar',
2 => 'baz',
);
var_dump($arr); // imprime array(2) { [0]=> string(3) "foo" [2]=> string(3) "baz" }
Vez como el key se queda como está desde el principio. Lo que sucede es que foreach no sigue un orden númerico establecido, sino que mira el próximo valor y su llave.