PHP プログラミングでは、値が配列内にあるかどうかを判断する必要があることがよくありますが、これは通常、in_array() 関数を使用して実現できます。ただし、値が配列内にないかどうかを判断する必要がある場合があります。どのようにすればよいでしょうか?
この記事では、値が配列内にないかどうかを判断するためによく使用される 3 つの方法と、その長所、短所、および適用可能なシナリオを紹介します。まず、in_array() 関数の使用方法を見てみましょう。
in_array($needle, $haystack);
ここで、$needle は検索する値を表し、$haystack は検索する配列を表します。 $needle が $haystack 内にある場合、関数は true を返し、それ以外の場合は false を返します。
次に、値が配列内にないかどうかを判断するには、以下に示すように、in_array() 関数の結果の前に否定演算を追加するだけです。 $needle が $haystack にないかどうかを確認します。ただし、この方法には欠点があります。つまり、$needle が $haystack にある場合でも、関数は false を返し、正しい答えを得るには結果を再度反転する必要があります。
上記のメソッドは、次の形式に書き直すこともできます:
!in_array($needle, $haystack);
array_search() 関数は、配列内の値を検索するために使用されます。見つかった場合は、その値のキーが配列が返され、そうでない場合は false を返します。したがって、$needle が $haystack にないことを確認したい場合は、array_search($needle, $haystack) の戻り値が false に等しいかどうかを確認できます。
ただし、このメソッドには欠点もあります。つまり、$needle が $haystack 内にある場合、関数は true を返す代わりに、配列内の要素のキーを返します。したがって、正しい答えを得るには、結果を再度比較する必要があります。
最後に、PHP 演算子を使用した、より簡単で効果的な方法を紹介します。 = と !== (以下に示すように):
array_search($needle, $haystack) === false;
このメソッドの原理は、$needle が $haystack 内にある場合、array_search($needle, $haystack) は配列内の要素のキーを返します。 $value はキーと等しく、それ以外の場合、$value は false と等しくなります。したがって、$value が array_search($needle, $haystack) に等しいかどうかを判断し、反転演算を実行して正しい答えを得る必要があるだけです。
つまり、PHP プログラミングでは、上記の 3 つの方法を使用して、値が配列内にないかどうかを判断できます。適切な方法を選択するときは、特定の状況を考慮して、機能を実装するのに最適な方法を選択する必要があります。
以上がPHPで値が配列内にあるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。