Menu
Coddy logo textTech

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つの引数を取ります。探しているキーと、検索対象の array です。キーが存在する場合は true を返し、存在しない場合は false を返します。これにより、条件文での使用に最適となります。

このチェックは、ユーザー入力や外部ソースからのデータのように不完全な可能性があるデータを扱う際に特に有用であり、期待されるすべてのキーが存在していることを保証できない場合に役立ちます。

challenge icon

チャレンジ

簡単

ユーザー データを表す JSON オブジェクトが含まれる入力行を 1 行読み込みます (例: {"username": "john_doe", "email": "john@example.com", "age": 28})。

次に、さらに 2 つの入力を読み込みます:

  • 文字列 key1 - 確認する最初のキー
  • 文字列 key2 - 確認する 2 番目のキー

JSON 入力から連想配列を作成し、以下の処理を行います:

  1. key1 が配列内に存在するか確認します。存在する場合は関連付けられた値を表示します。存在しない場合は Key not found を表示します。
  2. key2 が配列内に存在するか確認します。存在する場合は関連付けられた値を表示します。存在しない場合は Key not found を表示します。

それぞれの結果を改行して出力してください。

例:

入力が {"username": "john_doe", "email": "john@example.com", "age": 28}usernamephone の場合、出力は次のようになります:

john_doe
Key not found

入力が {"title": "Manager", "department": "Sales"}salarydepartment の場合、出力は次のようになります:

Key not found
Sales

自分で試してみよう

<?php
// JSON入力を読み取る
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// JSONを連想配列に変換する
$userData = (array)json_decode($jsonInput, true);

// TODO: 以下にコードを書いてください
// key1が存在するかを確認し、値または指示の正確なテキストを出力する

// key2が存在するかを確認し、値または指示の正確なテキストを出力する

?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: PHPオンラインコンパイラ