Ich glaube, ich habe einen riesigen Denkfehler.
Ja :)
Dein Array welches du mit readdir erhälst übergibst du an filter_array()
filter_array() ruft als callback-Funktion eine Funktion auf, nennen wir sie "is_valid_extension".
function is_valid_extension($str) {
// prüfe, ob der in pathinfo (PATHINFO_EXTENSION) einhaltene Wert (BASENAME interessiert dich nicht, du willst ja nur die Extension prüfen) in deinem Konfigurationsarray mit den Erlaubten Extensions enthalten ist.
// wenn ja: return true, ansonsten return false
}