Decirte que esto puede simplificarse:
así:
Con eso ya conseguís un "array autoincrementable".
En cuanto a evitar los vacíos, a mi me gusta hacer esto:
Con esa sentencia se saltean los items vacios en el bucle. O el problema no era saltearlos sino saber por qué existen?