pues muy claro no lo tengo, ya que a simple vista parece hasta correcto...
sin embargo debo decir que por eso se recomienda declarar variables antes de usarlas, y si lo haces dentro de un ciclo debes tener experiencia al respecto...
en tu caso debiste definir dichas variables antes de abrir el
while() y solo al insertar los índices pre-incrementar su valor:
Código PHP:
$foo[++$i] = $bar;