Un foreach no es más que un for más "compacto" (unión de un for y un each)
esto:
Código PHP:
foreach($_POST['campos_matriz'] as $indice => $valor)
echo "Indice: $indice -> Valor: $valor<br>";
Es lo mismo que esto:
Código PHP:
for($indice=0; $indice<count($_POST['campo_matriz']); $indice++)
echo "Indice: $indice -> Valor: ".$_POST['campo_matriz'][$indice]."<br>";

e igual es equivalente a esto:
Código PHP:
$indice=0;
while($indice<count($_POST['campo_matriz'])) {
echo "Indice: $indice -> Valor: ".$_POST['campo_matriz'][$indice]."<br>";
$indice++;
}
...
Mencioné la función each():
www.php.net/each
PD: Por tu script anterior supongo usas la FAQ para subir varios archivos (

), tu problema se sulociona con
Código PHP:
$N = count($_POST['archivo']); //Número de archivos a Subir

aunque eso ya lo habíamos concluido...
Otra cosa, en éste último caso sí es válido usar $_POST pués solo necesitamos el número de campos que vienen con un valor... pero ve que en el for, y a su vez el foreach, ó el while

tienes que y usar $_FILES
:pensado:...
Cita: Y a cada Campo le pongo archivo no archivo[] ?
En tu formulario sí... generas una matríz en $_POST ó $_FILES no... lo dije porque lo ponías ahí en tu código.

(qué PD tan largo

)