Ahhh!!! y recuerda que comienzas desde cero... no desde uno. de tal forma que borrando el 2, estas eliminando el tercer elemento, no el segundo.
Por otro lado... array_splice NO toma en cuenta los indices que tenga el array, sino su posición dentro del mismo.