代码之家  ›  专栏  ›  技术社区  ›  mamesaye

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

  •  1
  • mamesaye  · 技术社区  · 7 年前

    我有一个字符串数组。每个字符串都是一个文件名。每个文件名都是图像('.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 回复  |  直到 7 年前
        1
  •  3
  •   Don't Panic    7 年前

    定义要查找的不同类型的扩展。

    $extension_types = [
        'image' => ['jpg', 'jpeg', 'png'],
        'video' => ['mp4', 'mov', 'flv', 'mp3']
    ];
    

    然后,对于这些类型中的每一种,迭代files数组,直到找到一个具有扩展名的文件。将其添加到结果中,然后继续下一个类型。

    foreach ($extension_types as $type => $extensions) {
        foreach ($files as $file) {
            if (in_array(pathinfo($file, PATHINFO_EXTENSION), $extensions)) {
                $result[] = $file;
                break;
            }
        }
    }
    

    $files 每个扩展类型的数组。