Check if Key Exists
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 45/71。
連想配列を扱う際には、特定のキーが存在するかどうかを値にアクセスする前に確認する必要があることがよくあります。存在しないキーへのアクセスを試みるとエラーが発生する可能性があるため、PHPはまず安全に確認するためのarray_key_exists()関数を提供しています。
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>この関数は2つの引数を取ります:検索するキー と検索対象の配列です。キーが存在する場合に true を返し、そうでなければ false を返します。これにより、条件分岐文での使用に最適です。
このチェックは、ユーザー入力や外部ソースからのデータなど、不完全かもしれないデータに対処する場合に特に有用です。期待されるすべてのキーが存在することを保証できないためです。
チャレンジ
簡単ユーザー情報を表す JSON オブジェクトを含む入力行を読み取ります(例: {"username": "john_doe", "email": "john@example.com", "age": 28})。
次に、さらに 2 つの入力を読み取ります:
- 文字列
key1- チェックする最初のキー - 文字列
key2- チェックする 2 番目のキー
JSON 入力から連想配列を作成し、次に:
key1が配列に存在するかをチェックします。存在する場合、それに関連付けられた値を印刷します。存在しない場合、Key not foundを印刷します。key2が配列に存在するかをチェックします。存在する場合、それに関連付けられた値を印刷します。存在しない場合、Key not foundを印刷します。
各結果を別々の行に印刷します。
例:
入力が {"username": "john_doe", "email": "john@example.com", "age": 28}、username、および phone の場合、出力は次のようになります:
john_doe
Key not found入力が {"title": "Manager", "department": "Sales"}、salary、および department の場合、出力は次のようになります:
Key not found
Salesチートシート
アクセス前に連想配列に特定のキーが存在するかをチェックするために array_key_exists() を使用します:
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>この関数は2つの引数を受け取ります:検索対象のキー と配列。キーが存在する場合に true、そうでなければ false を返します。
自分で試してみよう
<?php
// JSON入力を読み取る
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// JSONを連想配列に変換する
$userData = (array)json_decode($jsonInput, true);
// TODO: 以下にコードを記述してください
// key1が存在するかをチェックし、値を出力するか "Key not found" を出力
// key2が存在するかをチェックし、値を出力するか "Key not found" を出力
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators