У меня следующий массив расширений файлов под названием $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
Как мне это сделать? Пожалуйста, помогите мне.
Это должно сломаться, если есть файл с неподдерживаемым расширением
foreach($values['vshare'] as $file)
{
if(!in_array(pathinfo($file, PATHINFO_EXTENSION), $aSupportedImages))
break;
}
пожалуйста попробуйте in_array
foreach($vshareArray as $key => $value){
if(in_array($key, $aSupportedImages)){
echo "valid";
}else{
echo "not valid";
}
}
попробуй это:
<?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
}
}
?>