PHP 脚本如何检查一个值是否在数组中?我希望它检查密码输入是否等于数组中的密码。
例如,如果 $input == "pass1" 或 "pass2" 或 "pass3"
来自php手册:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) 除非设置了严格,否则使用松散比较搜索 haystack 中的针。
if(in_array($input, $somearray)){ .. }
用于检查变量是否在数组中的 PHP 函数是in_array
.
像这样:
if (in_array($input, array("pass1", "pass2", "pass3")) {
// do something
}
几乎复制了 Marc B 在他的评论中所说的内容,示例代码是
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
在此示例中,第二个 if 将失败,因为数组中不包含“mac”。
有几种方法。in_array
是一个,foreach
是另一个。我不知道哪个更快,但您可以这样做foreach
:
foreach ($array as $a) {
if ($a == "correct password") {
//do something
}
}
这是另一种方式,
if(count(array_intersect(array($input), array("pass1", "pass2", "pass3"))) > 0){
//do stuff
}