是否有一个函数可以检查一些值的数组吗?我有2个阵列,1个带有文件扩展名的数组,1个带有混合的东西。in_array仅与字符串一起工作。
已经谢谢!
文件的示例:
picture21474.png
允许扩展:
$extensions = array('gif', 'jpg', 'png');
我在文件上的点上爆炸。但是,当您使用爆炸时,文件将设置为array()。现在,我会检查文件扩展名是否合法。诸如in_array($ Extensions,$ ExplodedFile)
有2个功能可能会帮助您:
array_intersect ( array $array1 , array $array2 [, array $... ] )
array_intersect()返回一个包含所有参数中存在的array1值的数组。请注意,保留了钥匙。http://ro1.php.net/manual/en/function.array-intersect.phparray_diff ( array $array1 , array $array2 [, array $... ] )
将Array1与一个或多个其他数组进行比较,并返回其他任何数组中不存在的Array1中的值。http://ro1.php.net/array_diff
您可以尝试使用array_intersect
:
$intersect = array_intersect($array1, $array2);
echo count($intersect) . ' elements in array2';
如果要检查$array1
中的所有元素是否在$array2
中,请:
if (count($intersect) == count($array1)) {}
编辑:
如果要检查File的扩展名是否包含扩展名数组中,请执行:
$filename = 'picture21474.png';
$extensions = array('gif', 'jpg', 'png');
list($name, $extension) = explode('.', $filename);
if (in_array($extension, $extensions) ) {
// extension is valid
}
编辑2:
有效获取文件扩展名:
$filename = 'picture21474.png';
$info = pathinfo($filename);
if (in_array($info['extension'], $extensions) ) {
// extension is valid
}