PHP的字符串数组仅选择2个元素

时间:2018-11-16 00:17:51

标签: php arrays string sorting

我有一个字符串数组。每个字符串都是一个文件名。每个文件名可以是图像('.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 :(得分: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; } } } 数组中的第一个元素。