D’abord, merci pour cet algo de validation, difficile à trouver sur Internet !
En passant, pour ceux que ça intéresse, j’ai ajouté à cette fonction la validation globale de la forme avec une expression régulière :
preg_match('%^(\d{3})(\d{4})([a-zA-Z])$%', $code_ui, $matches);
Si le résultat est positif, je teste ensuite la validité du département qui devrait être dans $matches[1]
et le découpage entre code et clé est simplifié :
// Récupération du code et de sa clé
$code = $matches[1] . $matches[2];
$cle = strtolower($matches[3]);