Creo que por motivos de seguridad no te permite subir una cantidad invariable de archivos, no lo he probado.
Intenta en vez de utilizar imagen[] usar: imagen1, imagen2, imagen3... y un input hidden con el total, de todas formas $_FILES siempre devuelve un array. has la prueba y me avisas, la verdad nunca se me había presentado esa necesidad.
El código quedaría mas u menos así:
Código PHP:
$total=intval($_POST['total_imagenes']);
for ($j=0;$j<$total;$j++){
$destination=$_FILES['imagen'.$j];
if(!move_uploaded_file($_FILES['imagen'.$j]['tmp_name'], $destination))
echo 'no';
$i++;
}