我希望看到有更好的方法来检查这些数组键是否存在。我正在使用基本的if语句
$rules = array(
'extensions' => ['png', 'gif', 'jpg', 'jpeg'],
'mimes' => ['image/png', 'image/gif', 'image/jpeg',
]);
if (in_array($mime_type, $rules['mimes']))
{
echo "<br>Valid Image!<br>>";
}
else
{
echo "<br>Ivalid Image!<br>>";
}
if (in_array($file_type, $rules['extensions']))
{
echo "<br>Valid Extension<br>";
}
else
{
echo "<br>Ivalid Extension<br>";
}
答案 0 :(得分:2)
你的代码对我来说似乎很好,但为了节省一些内容,你可以使用array_walk_recursive()
,即:
$result = [];
array_walk_recursive($rules, function ($item) use (&$result, $file_type, $mime_type)
{
if (preg_match("@$mime_type|$file_type@i", $item))
{
$result[] = $item;
}
}
);
if (count($result) > 1) {
print "both values";
}
答案 1 :(得分:1)
您在检查键/值吗? 在您的问题标题中,它表示键,但您正在上面的代码中搜索值。 要获得价值,如果它是一个简单的一维数组in_array将有所帮助。 要获取密钥,您可以使用array_key_exists进行检查。 如果它是一个多维数组,请尝试这样:https://stackoverflow.com/a/19421079/6863825您可以修改逻辑以获得同一函数中的key / val。 如果有帮助,请告诉我。