¿Qué tiene que ver el array con el SQL?
Yo lo que te estoy itentado explciar es que no puedes poner un único UPATE para manipular registros diferentes.
Debes construir y ejecutar cada UPDATE dentro del FOR... Me parece que no es difícil de comprender.
Código PHP:
Ver originalfor($esp=0;$esp<count($esp_data_pv);$esp++){ $query_es_pap_servicio = "UPDATE seg_pap_servicio SET ";
$query_es_pap_servicio .= "jc_servicio_id = '".$esp_data_pv[$esp]['esp_programa']."', ";
$query_es_pap_servicio .= "seg_pap_valor_venta = '".$esp_data_pv[$esp]['esp_valor_venta']."'";
$query_es_pap_servicio .= " WHERE seg_pap_id = '$esp_id'";
}