El problema es que los valores se agregan dinámicamente, y dada la notación de array[] no es posible determinar un orden.
Para eso es recomendable usar un índice en común entre todos los campos relacionados:
Como puedes ver ahí estoy usando el índice 1, y si existen más elementos compartiendo el mismo índice todo tendrá coherencia.
En caso de omitir algún valor sencillamente se omitirá en el array y los demás índices seguirán en orden.
Consulta el siguiente manual:
http://www.php.net/variables.external