Как сравнить расширение файлов в массиве и сгенерировать ошибку?

У меня следующий массив расширений файлов под названием $aSupportedImages:

Array
(
[0] => jpeg
[1] => jpg
[2] => gif
[3] => png
)

У меня есть другой массив под названием $values следующее :

Array
(
[vshare] => Array
(
[course_error.png] => Array
(
[0] => https://www.filepicker.io/api/file/Y0n99udSqS6ZJWYeYcUA
)

[before_login.png] => Array
(
[0] => https://www.filepicker.io/api/file/19FWbHh1QNGCo2OINxI6
)

[Sample_1.docx] => Array
(
[0] => https://www.filepicker.io/api/file/INjMeEhCSjpZSfZJmQUb
)

)

)

Теперь вы можете видеть, что каждый ключ в массиве [vshare] это имя файла Я хочу проверить расширение каждого из таких файлов с расширениями, присутствующими в массиве $aSupportedImages, Если какой-либо из файлов имеет расширение, отличное от тех, которые присутствуют в массиве $aSupportedImage цикл должен получить разрыв, и он должен вернуть false.

В вышеприведенном случае для третьего файла он должен вернуть false. Так как .docx нет в массиве $aSupportedImages

Как мне это сделать? Пожалуйста, помогите мне.

0

Решение

Это должно сломаться, если есть файл с неподдерживаемым расширением

foreach($values['vshare'] as $file)
{
if(!in_array(pathinfo($file, PATHINFO_EXTENSION), $aSupportedImages))
break;
}
0

Другие решения

пожалуйста попробуйте in_array

 foreach($vshareArray as $key => $value){
if(in_array($key, $aSupportedImages)){
echo "valid";
}else{
echo "not valid";
}
}
0

попробуй это:

<?php

function get_ext($filename) {

return strtolower(substr($filename, strrpos($filename, '.')));

}

$ext_authorized = array('.jpg', '.jpeg', '.png', '.gig');

$values = array (
'vshare' => array (
'course_error.png' => array ('https://www.filepicker.io/api/file/Y0n99udSqS6ZJWYeYcUA'),
'before_login.png' => array ('https://www.filepicker.io/api/file/19FWbHh1QNGCo2OINxI6'),
'Sample_1.docx' => array ('https://www.filepicker.io/api/file/INjMeEhCSjpZSfZJmQUb')
)
);

foreach($values['vshare'] as $key => $val) {

if (in_array(get_ext($key), $ext_authorized)) {

//do something

} else {

//do something

}

}
?> 
0
По вопросам рекламы [email protected]