el id es el indice por el que va a ir pasando y el valor va a ser el valor asignado a ese indice si tu imprimes el ejemplo que te di poniendo un arreglo veras lo que te da y asi entenderas algo asi
Código PHP:
$arreglo=array("valor1","valor2");
foreach($arreglo as $id=>$valor)
{
echo "el indice es ".$id." el valor es ".$valor."<br/>;
}
te deberia imprimir:
el indice es 0 el valor es valor1
el indice es 1 el valor es valor2
prueba y veras es sencillo trabajar los arreglos con este ciclo luego q uno lo capta suerte
con respecto a los espacios en blanco xq no lo validas que no se pueda, osea para que necesitas tu espacios en blanco?? no estoy seguro de que los tome en cuenta seria cuestion de revisar o haz algo as un count de tu variable arreglo para ver cuantos te trae ahi vez si te trae los blancos o no suerte