PHP共通関数解析:in_array()

WBOY
WBOYオリジナル
2023-06-19 23:22:403918ブラウズ

PHP では、in_array() 関数は非常によく使用される関数で、配列内に値が存在するかどうかを判断できます。この記事では、in_array() 関数の詳細な分析を提供します。

in_array() 関数の構文は次のとおりです。

bool in_array(mixed $needle, array $haystack[, bool $strict = FALSE])

where $needle は取得する値、$haystack はターゲット配列、$strict は厳密モードを使用するかどうか (つまり、型を考慮するかどうか) を示し、デフォルトは FALSE です。

次に、例を見てみましょう:

$fruits = array("apple", "banana", "orange");
if (in_array("apple", $fruits)) {
    echo "有苹果哦!";
}

$fruits 配列に「apple」が存在するため、このコードの出力は「リンゴがあります!」となります。

次に、いくつかの異なる状況を見てみましょう。

ケース 1: 単純な値型の場合、in_array() 関数はデフォルトでリラックス モードを使用します。つまり、型は考慮されません。例:

$numbers = array(1, 2, 3, 4, 5);
if (in_array("2", $numbers)) { // 注意,这里的 2 是一个字符串
    echo "2 存在于数组中";
}

このコードの出力結果も「配列内に 2 が存在します」となります。「2」が文字列であっても、正常に一致します。

厳密モー​​ドを使用するには、3 番目のパラメータを TRUE に設定する必要があります。例:

$numbers = array(1, 2, 3, 4, 5);
if (in_array("2", $numbers, TRUE)) {
    echo "2 存在于数组中";
} else {
    echo "2 不是数组的元素";
}

このコードの出力は、「2 は配列の要素ではありません」となります。これは、厳密モードでは、「2」と 2 は異なる型であり、正常に一致できないためです。

ケース 2: 複合型 (配列など) の値の場合、in_array() 関数もデフォルトでリラックス モードを使用します。つまり、要素の 1 つが正常に一致する限り、要素全体が一致します。値は成功した一致とみなされます。例:

$person1 = array("name" => "John", "age" => 30);
$person2 = array("name" => "Mary", "age" => 25);
$people = array($person1, $person2);
if (in_array(array("name" => "John"), $people)) {
    echo "有一个人叫 John!";
}

$person1 の「name」要素が正常に一致するため、このコードの出力は「John という名前の人がいます!」となります。

ケース 3: ターゲット配列の値が NULL の場合、in_array() 関数は値が存在しないとはみなしません。例:

$values = array("a", "b", NULL);
if (in_array(NULL, $values)) {
    echo "NULL 存在于数组中";
}

このコードの出力は、「配列に NULL が存在します」となります。

要約すると、in_array() 関数は非常に実用的な関数であり、広く使用されています。開発中に配列に値が存在するかどうかを判断する必要がある場合、この関数を優先して使用できます。同時に、型の不一致の問題を避けるために厳密モードを使用するように注意してください。

以上がPHP共通関数解析:in_array()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。