PHP 開発では、配列内に要素が存在するかどうかを確認する必要がある場合がよくありますが、この場合、通常は in_array() 関数または array_search() 関数を使用します。以下では、これら2つの機能の使い方と違いを詳しく紹介します。
1. in_array() 関数
in_array() 関数は、配列に要素が存在するかどうかを判断するために PHP でよく使用される関数で、使用方法は次のとおりです。
## bool in_array(mixed $needle, array $haystack [, bool $strict]);
このうち、$needle は検索対象の要素を表し、$haystack は検索対象の配列を表します。 $strict は一致比較するかどうかを表し、戻り値はブール値です。
サンプルコードは次のとおりです。
$fruits = array("apple", "banana", "orange", "tomato");
if (in_array("apple", $fruits)) {
echo "有苹果!";
} else {
echo "没有苹果。";
}
ログイン後にコピー
出力結果は「リンゴがあります!」です。
2. array_search() 関数
array_search() 関数には in_array() 関数と同様の関数があり、配列内に要素が存在するかどうかを確認するためにも使用できます。 in_array() 関数とは異なり、array_search() 関数は要素の添字または false を返します。
array_search() 関数は次のように使用されます:
mixed array_search(mixed $needle, array $haystack [, bool $strict]);
そのうち、$ neede は検索対象の要素を表し、$haystack は検索対象の配列を表し、$strict は一致比較するかどうかを表します。
サンプルコードは次のとおりです。
$fruits = array("apple", "banana", "orange", "tomato");
$key = array_search("orange", $fruits);
if ($key !== false) {
echo "'orange' 的下标是: " . $key;
} else {
echo "'orange' 不存在!";
}
ログイン後にコピー
出力結果は「'orange' の添字は: 2」となります。
3. in_array() 関数と array_search() 関数の違い
in_array() 関数と array_search() 関数は、要素が存在するかどうかを判断する点で類似した機能を備えています。配列、それら 2 つは依然として次の違いがあります:
戻り値が異なります: in_array() はブール値を返し、array_search() は要素の添字または false を返します。 - 比較方法は異なります。in_array() 関数は要素の値のみを比較しますが、array_search() 関数は要素のキーと値の両方を比較できます。
- 使用制限は異なります。array_search() 関数は 1 次元配列にのみ使用できますが、in_array() 関数は多次元配列に使用できます。
-
4. 要素が配列内に存在するかどうかを判断する複数の方法
in_array() 関数と array_search() 関数に加えて、要素が配列内に存在するかどうかを判断する他の方法があります。 isset() 関数や array_key_exists() 関数を使用するなど、配列内に要素が存在します。
isset() 関数を使用する-
isset() 関数は、配列に要素が存在するかどうかを判定するために使用できます。使用方法は次のとおりです。
$fruits = array("apple", "banana", "orange", "tomato");
if (isset($fruits[2])) {
echo "'orange' 存在!";
} else {
echo "'orange' 不存在!";
}
ログイン後にコピー
出力結果は「'orange' が存在します!」です。
array_key_exists() 関数を使用する
- array_key_exists() 関数は、配列内に要素が存在するかどうかを判断するために使用することもできます。使用方法は次のとおりです。 #
$fruits = array("apple", "banana", "orange", "tomato");
if (array_key_exists(2, $fruits)) {
echo "'orange' 存在!";
} else {
echo "'orange' 不存在!";
}
ログイン後にコピー
出力結果は「'orange' が存在します!」です。
配列の値が存在するか空であるかを判断するためにのみ使用できる isset() 関数とは異なり、array_key_exists() 関数は配列のキーが存在するかどうかを判断するために使用できます。
結論
上記の導入を通じて、PHP 開発では、要素が配列内に存在するかどうかを判断するのは難しくないことがわかります。in_array() 関数、array_search を使用できます。 ( ) 関数、isset() 関数、array_key_exists() 関数などを使用してこれを実現します。具体的にどの方法を使用するか、最良の結果を達成するには、さまざまな状況に応じてさまざまな方法を選択する必要があります。
以上がPHPは配列内に存在するかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。