Con una sencilla
expresión regular, puedes realizar esa validación y sin necesidad de utilizar bucles.
Código PHP:
Ver original$string1 = "ABC";
$string2 = "1ABC";
$string3 = "ABC1";
$pattern = "/^[A-Z-_]+\d?/i";
echo preg_match($pattern, $string1) ?
"Bien" : "Mal"; //Imprime Bien echo preg_match($pattern, $string2) ?
"Bien" : "Mal"; //Imprime Mal echo preg_match($pattern, $string3) ?
"Bien" : "Mal"; //Imprime Bien
Saludos