Para transformar letra com acento em maiúscula no PHP a forma mais fácil e com menos cara de gambiarra como aparecem em outras soluções na internet é usar mb_strtoupper().
No mb_strtoupper() o alfabeto é determinado pelas propriedades de
caracteres Unicode. Essa função não é afetada pelas configurações de
localidade e pode converter qualquer caractere com ou sem acentos.
Diferente do strtoupper() que considera o local da codificação, por isso não tem efeito em letras com acentos.
Veja também:
Como transformar letras minusculas em maiúsculas com CSS?