ホームページ  >  記事  >  バックエンド開発  >  PHPは、指定されたキーが配列内に存在するかどうかを判断します

PHPは、指定されたキーが配列内に存在するかどうかを判断します

王林
王林転載
2024-03-21 21:21:06524ブラウズ

PHP の配列に指定されたキーが存在するかどうかを判断することは、プログラミングでよくある問題の 1 つです。 PHP では、array_key_exists() 関数を使用して、指定されたキーが配列内に存在するかどうかを確認できます。存在する場合は true を返し、存在しない場合は false を返します。この単純な方法により、配列に必要なキーが含まれているかどうかを簡単に判断し、対応する論理処理を実行できます。具体的な実装方法を見ていきましょう。

PHP は、指定されたキーが配列内に存在するかどうかを判断します

php では、指定されたキーが配列内に存在するかどうかを確認するさまざまな方法があります。

1. isset() 関数を使用します:

isset($array["key"])
この関数はブール値を返します。指定されたキーが存在する場合は true を返し、それ以外の場合は false を返します。 

2. array_key_exists() 関数を使用します:

array_key_exists("キー", $array)
この関数もブール値を返しますが、isset() とは異なり、継承されたプロパティは検出しません。 

3. in_array() 関数を使用します (非推奨):

in_array("キー", array_keys($array))
この関数はブール値を返しますが、配列のキーを 

string に変換するため、数値キーが検出されない可能性があります。

4. array_search() 関数を使用します:

array_search("キー", $array)
この関数は、配列内の指定されたキーの 

index を返します。キーが存在しない場合は、false を返します。

5. = 演算子を使用します:

$配列["キー"] = 0;
キーが存在する場合、この操作によりキーに対応する値が 0 ずつ増加します。そうでない場合は、新しいキーが追加され、その値が 0 に設定されます。次に、$array["key"] が 0 であるかどうかを確認して、キーが存在するかどうかを判断します。 

6. empty() 関数を使用します (非推奨):

空($array["key"])
この関数はブール値を返します。キーが存在しないか空の場合は true を返し、それ以外の場合は false を返します。 

パフォーマンスの比較:

    isset() と array_key_exists() は、大規模な配列に対して最適なパフォーマンスを発揮します。
  • in_array() と array_search() は、小さな配列のパフォーマンスが向上します。
  • = 演算子と empty() はパフォーマンスが最も悪く、推奨されません。

最適な方法を選択してください:

どの方法を選択するかは、特定の状況によって異なります:

    存在しないキーと null を区別する必要がある場合は、isset() を使用します。
  • 継承されたプロパティが考慮されない場合は、array_key_exists() を使用します。
  • キーのインデックスを取得したい場合は、array_search() を使用します。
  • 新しいキーを追加する必要がある場合、または既存のキーの値に対して
  • 数学的 演算を実行する必要がある場合は、= 演算子を使用します。
  • ######例:######
$array = ["名前" => "ジョン", "年齢" => 30]; if (isset($array["name"])) { echo "名前が存在します"; } if (array_key_exists("年齢", $array)) { エコー「年齢は存在します」; } if (array_search("name", $array) !== false) { echo "名前にはインデックスがあります " .array_search("name", $array); } $array["趣味"] = 0; if ($array["hobby"] === 0) { echo "趣味は存在しません"; }

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

声明:
この記事はlsjlt.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。