Определите различные типы расширений, которые вы ищете.
$extension_types = [
'image' => ['jpg', 'jpeg', 'png'],
'video' => ['mp4', 'mov', 'flv', 'mp3']
];
Затем для каждого из этих типов повторяйте массив файлов, пока не найдете файл с одним из расширений для него. Добавьте это к вашему результату и переходите к следующему типу.
foreach ($extension_types as $type => $extensions) {
foreach ($files as $file) {
if (in_array(pathinfo($file, PATHINFO_EXTENSION), $extensions)) {
$result[] = $file;
break;
}
}
}
Получит первый элемент в массиве $files
для каждого типа расширения.