Ambas as formas são correctas no português. No entanto, pelo menos para alguns falantes, têm significados um pouco diferentes.
Assim, na estrutura «ter nível 3 a Língua Portuguesa» verifica-se uma relação directa e estreita entre a classificação obtida e a disciplina em causa, ou seja, o nível alcançado refere-se estritamente à disciplina ou aos seus conteúdos. Por exemplo, no final de um ano lectivo, seria mais natural um aluno dizer que «teve nível 3 a Língua Portuguesa» do que dizer que «teve nível 3 em Língua Portuguesa». Esta segunda forma parece remeter para algum tipo de avaliação mais pontual dentro da globalidade da disciplina. Assim, um aluno dirá que «teve nível 3 em Português» se se refere a um determinado teste, a um conjunto de perguntas ou a qualquer outro tipo de avaliação de natureza mais concreta ou restrita. De facto, parece ser mais natural dizer-se «ter nível 3 no (= em o) teste de Língua Portuguesa» do que «ter nível 3 ao (= a o) teste de Língua Portuguesa». Embora muito subtil, esta distinção pode ajudar a explicar a coexistência das duas formas no português.