Lo que pasa es que el bucle itera la cantidad de elementos que contiene, los cuales son 3 (tres arrays). Inténtalo de esta forma:
    
Código PHP:
Ver original$producto = $_POST["producto"];
$valor = $_POST["valor"];
$unidad = $_POST["unidad"];
 
for ($i = 0, $limite = count($producto); $i < $limite; $i++){     echo "Producto: " . $producto[$i] . "\r\n";
    echo "Valor: " . $valor[$i] . "\r\n";
    echo "Unidad: " . $unidad[$i] . "\r\n\r\n";
}
  
Como los tres arrays tienen la misma cantidad de elementos, basta con que iteres uno para obtener los valores de los tres. 
Así se vería: 
http://ideone.com/9jEtFA 
Saludos