Oder so ähnlich.
Ja, so ähnlich - nur dass die callback-Funktion von array_filter jeden wert des Arrays einzeln durchgereicht bekommt :)
ergo musst du prüfen, ob die Extension des durchgereichten Werts in den erlaubten Werten enthalten ist.
Aktuell prüfst du, ob der erlaubte Wert (ein string) in einem array (welches eigentlich ein String ist) enthalten ist.
Ein paar debug-Ausgaben wären nicht verkehrt.