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 original- if( ! empty($_POST['doc' . $x])) { 
-      // Aquí realizas el proceso para insertar 
- }