如何检查是否可以解压缩包含允许扩展名的数组中的某些文件

I want to check if some files are unpacked whe they are part of an allowed array of extensions. This is the extensions which are allowed to be unpacked:

$AllowedExts = array("gif", "jpeg", "jpg", "JPG", "png", "tif", "tiff", "bmp", "zip", "rar", "js", "css", "txt", "less", "pdf", "mp3"); // set allowed extensions

For unzipping, i have this code so far:

if(in_array($ext, $AllowedExts)) { // only files with allowed Exts can be extracted
                $zip->extractTo(dirname($_POST['extractfile']), $zip->getNameIndex($i)); // extract in the same folder as where the zip file is
                echo 'file(s) are unpacked'; 
                }
                else {
                echo 'file(s) could not be unpacked'; 
                }

Now i want in this loop a check if some files are unpacked and some files not.

so there must be something like:

if (all file(s) can be unpacked) {
// alle files are unpacked
}
elseif (only some files can be unpacked) {
// only some files are unpacked
}
else (no file could be unpacked) {
// no file could be unpacked
}

How do i have to create the if/else loop for this?

Suppose you have a list of all extensions of your files in an array called $arr. You could use array_reduce to check if all, some or none of your files can be extracted.

This code should work:

<?php

$AllowedExts = array("gif", "jpeg", "jpg", "JPG", "png", "tif", "tiff", "bmp", "zip", "rar", "js", "css", "txt", "less", "pdf", "mp3"); // set allowed extensions

$myExtenstions = ["zip", "rar", "js", "css", "bb", "txt2"];

$some=false;
$res = array_reduce(
    $myExtenstions,
    function($res, $a) use ($AllowedExts, &$some) {
        $allowed = in_array($a, $AllowedExts);        
        if (!$some && $allowed) $some=true;
        return $res && $allowed;
    }, true
);

if ($res) {
    var_dump("all files are unpacked");
}else if ($some){
    var_dump("only some files are unpacked");
}else {
    var_dump("no file could be unpacked");
}