値が配列内にあるかどうかをPHPスクリプトで確認するにはどうすればよいですか? パスワード入力が配列内のパスワードと等しいかどうかを確認したい。
例 $input == "pass1" または "pass2" または "pass3" の場合
PHPマニュアルから:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) strict が設定されていない限り、緩い比較を使用して haystack からneedle を検索します。
if(in_array($input, $somearray)){ .. }
変数が配列内にあるかどうかをチェックするための PHP 関数はin_array
.
このような:
if (in_array($input, array("pass1", "pass2", "pass3")) {
// do something
}
別の方法は次のとおりです。
if(count(array_intersect(array($input), array("pass1", "pass2", "pass3"))) > 0){
//do stuff
}
マーク B が彼のコメントで述べたことをほとんどコピーします。コード例は次のとおりです。
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
この例では、「mac」が配列に含まれていないため、2 番目の if は失敗します。
いくつかの方法があります。in_array
一つであり、foreach
もう一つです。どちらが速いかはわかりませんが、次のようにしますforeach
。
foreach ($array as $a) {
if ($a == "correct password") {
//do something
}
}