PHP массив строк выбирает только 2 элемента - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть массив строк. Каждая строка является именем файла. Каждое имя файла - это изображение ('.jpg', '.jpeg', '.png') или видео / аудио ('.mp4', '.mov', '.flv', '.mp3').
Пример:
$files [] = ['file1.jpg', 'file2.mp4', 'file3.mov', 'file4.flv', 'file5.png'];

Как я могу создать новый массив из массива $files с двумя именами файлов только разного типа, например 1 видео и 1 изображение типа:
['file1.jpg', 'file3.mov'] или ['file1.jpg', 'file2.mp4']

1 Ответ

0 голосов
/ 16 ноября 2018

Определите различные типы расширений, которые вы ищете.

$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 для каждого типа расширения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...