【发布时间】:2020-02-17 14:18:09
【问题描述】:
我有两个数组。
$uploaded_array = array("image/jpeg", "image/jpeg", "image/gif", "image/png", "text/html");
$allowed_array = array("image/jpeg", "image/gif", "image/png");
我需要一个函数来实现特定目标。 条件是, 1.uploaded_array 只能包含来自 allowed_array 的元素。 2. upload_array 可以不包含 allowed_array 中的所有元素,但是 upload_array 不应包含任何未出现在 allowed_array 中的元素。 3.只要元素也存在于 allowed_array 中,upload_array 也可以有重复元素。
我只是将上传的图像文件类型存储到 upload_array 中,然后我定义了 allowed_array 来设置可接受的文件类型格式。
感谢您的回答。
自己找到了一种解决方案。只需从第一个数组中消除重复项并比较两个数组的差异,然后计算差异。如果计数大于 0,则表示第一个数组有一个元素不存在于第二个数组中。
$uploaded_array = array_unique(array("image/jpeg", "image/jpeg", "image/gif", "image/png", "text/html"));
$allowed_array = array("image/jpeg", "image/gif", "image/png");
$acceptable_format=count(array_diff($uploaded_array,$allowed_array));
if($acceptable_format==0) {
//all files are acceptable
} else {
//some files are not in valid format
}
【问题讨论】:
-
这就是你自己能想到的所有代码?
-
“我尝试了各种条件,但都没有奏效” - 向我们展示你当时实际尝试的内容。不要假装像
if(condition){这样的东西是一个实际的尝试——它不是,只是在某个地方写“条件”,在这里很难被认为是这样的。 -
这与我需要“解决这个问题”无关。这是关于你这边明显缺乏研究。当我进行互联网搜索时,到处都有许多有用的数组函数......
-
@trincot 那些没有出现在我的搜索引擎中,对此感到抱歉。