ホームページ >バックエンド開発 >PHPの問題 >PHPの配列にキーが存在するかどうかを確認する方法

PHPの配列にキーが存在するかどうかを確認する方法

PHPz
PHPzオリジナル
2023-04-26 09:07:58852ブラウズ

PHP では、配列は複数の値を保存し、添え字を通じてこれらの値にアクセスできる非常に一般的なデータ型です。実際の開発では、配列中に特定のキーが存在するかどうかを判定する必要があることが多く、この問題は簡単そうに見えて、実は注意が必要な点がいくつかあります。

まず第一に、PHP には、配列内に特定のキーが存在するかどうかを判断するための関数がいくつか用意されています。例:

  1. array_key_exists() 関数

array_key_exists( ) 関数は、配列内に特定のキーが存在するかどうかを判定するために使用され、その関数プロトタイプは次のとおりです:

bool array_key_exists (mixed $key, array $array)

このうち、 $key はキーを決定するキーを表し、$array は検索する配列を表します。 $key が $array に存在する場合は true を返し、それ以外の場合は false を返します。

例:

$arr = array("name" => "张三", "age" => 18);
if (array_key_exists("name", $arr)) {
    echo "存在name键";
} else {
    echo "不存在name键";
}

上記コードでは、$arr配列にnameキーが存在するため、「name keyあり」と出力されます。

  1. isset() 関数

isset() 関数は、変数が設定されているかどうか、NULL ではないかどうかを判断するために使用されます。その関数プロトタイプは次のとおりです。

bool isset (mixed $var [,mixed $...] )

このうち、$varは判定対象の変数を表します。 $var が設定されており、NULL ではない場合は true を返し、それ以外の場合は false を返します。

配列の場合、$key が存在するかどうかを確認したい場合は、isset() 関数を使用できます。例:

$arr = array("name" => "张三", "age" => 18);
if (isset($arr["name"])) {
    echo "存在name键";
} else {
    echo "不存在name键";
}
上記のコードでは、name key が存在するため、 $arr配列なので「name keyあり」と出力されます。

さらに、$key が存在するかどうかを確認する別の方法があります - array_search() 関数を使用します。この関数の機能は、配列内で指定された値を検索することです。見つかった場合は、値が返されます. キー、それ以外の場合は false が返されます。キーが存在するかどうかを確認したい場合は、この関数を使用できます。例:

$arr = array("name" => "张三", "age" => 18);
if (array_search("name", $arr)) {
    echo "存在name键";
} else {
    echo "不存在name键";
}
上記のコードでは、name キーが $arr 配列に存在するため、「name key が存在します」と出力されます。 。

ただし、上記の方法は、$value と $key が両方とも文字列である場合にのみ適用できることに注意してください。 $key が他のタイプの場合、array_search() 関数の使用はお勧めできません。

もう 1 つ注意すべき点は、$key に対応する値が NULL の場合、isset() 関数と array_key_exists() 関数の両方が false を返すことです。したがって、$key が存在するかどうかを判断する場合は、array_key_exists() 関数を使用することをお勧めします。

要約すると、PHP で array_key_exists() 関数と isset() 関数を使用すると、キーが配列内に存在するかどうかを効果的に判断できます。一方、array_search() 関数は、値が文字列の場合に使用でき、 $ key も文字列である場合に使用されます。実際の開発では、状況に応じて適切な判断方法を選択する必要があります。

以上がPHPの配列にキーが存在するかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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