El problema no es tanto la forma en que asignas los nombres a los campos, no es lo correcto/recomendable/óptimo, pero funciona, el problema es que estás comparando si existe
$_POST['doc' .$x], siendo campo de texto, siempre va a estar definido, entonces, necesitas verificar si tiene algún contenido;
empty() te servirá:
Código PHP:
Ver originalif( ! empty($_POST['doc' . $x])) { // Aquí realizas el proceso para insertar
}