But he is accessing it positionally (with the for loop) while pushing onto it and shifting it at the same time. That means he's going to end up running his transformation on output data, plus throwing away data that should have been transformed, etc.
Yes, but the problem is that how he's accessing the array. If he had been using $array[0] instead of $array[$j], he would have been fine (aside other issues such as variable reuse).