检查数组
$allow = array(
"pdf"=>"application/pdf",
"doc"=>"application/msword",
"docx"=>"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"docx"=>"application/zip" // this will be overridden by above index.
);
if(in_array("application/vnd.openxmlformats-officedocument.wordprocessingml.document",$allow)){
echo "true";
}else{
echo "false";
}
你的阵列具有相同的密钥,DOCX,所以最后一个会被旧的覆盖。
在你的情况
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
overriden by "application/zip"
编辑
$allow = [
"pdf"=>"application/pdf",
"doc"=>"application/msword",
"docx"=>[
"docx"=>"application/zip",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"]
];
而且条件会。
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
echo in_array_r("application/vnd.openxmlformats-officedocument.wordprocessingml.document", $allow) ? 'true' : 'false';
我参考了link。
你不能定义与相同密钥的两个数组元素,如果使用相同的密钥两个数组元素则最新的一个覆写以前 –
我有不同的MIME两种文件DOCX,如何让他们两个? –
@AbuAyyub:docx1,docx2 ?? –