No sé si se los números de teléfonos varían en los países de centro america o sudamérica como pasa con EE.UU(10 números), pero en España son 3 prefijo y 6 números.
¿No te sería más fácil con expresiones regulares?
Código PHP:
<?php
$num = "(916)111-111";
if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{3}/x', trim($num)))
echo "numero correcto";
else
echo "numero incorrecto";
?>