Hola bjpenn creo que te estas complicando demasiado, es mas facil hacer algo asi
foreach $_FILES as archivo{
switch archivo['type']{
case "image/jpeg"
//Es jpeg
break;
case "image/gif"
//gif
break;
}
}
Igualmente $_FILE['archivo']['type'] segun la documentación no se verifica en el servidor, solamente te devuelte el mime type que te envia el navegador. Si queres verificar el mime type en el servidor tendrias que usar la función finfo_file()