simple lógica colega, si te fijas el aumentador del contador ($i) está al final y la condición del bucle (while) arriba, entonces el contador queda una posición después del último valor del array, es decir, si tu array tuvo 3 elementos el contador se quedó en 4
De hecho... $i quizás podría no contener 1 cuando tu array podría tener un elemento o cero elementos. Y que, de hecho, no se que utilidad tiene este segmento de código: