我有一个字符串数组。每个字符串都是一个文件名。每个文件名可以是图像('.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']
答案 0 :(得分:3)
定义要查找的扩展名的不同类型。
def get_text_metrics(self, family, size, text):
font = None
key = (family, size)
if key in self.fonts:
font = self.fonts[key]
else:
font = tkFont.Font(family=family, size=size)
self.fonts[key] = font
assert font is not None
(w, h) = (font.measure(text), font.metrics('linespace'))
return (w, h)
然后,对于每种类型,迭代文件数组,直到找到带有扩展名之一的文件。将其添加到您的结果中,然后继续下一个类型。
$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;
}
}
}
数组中的第一个元素。