Menu
Coddy logo textTech

キーの存在を確認

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を返します。そのため、条件文での使用に最適です。

このチェックは、user input や外部ソースからの data のように、すべての想定されるキーが存在することを保証できない、不完全な可能性のある data を扱う場合に特に役立ちます。

challenge icon

チャレンジ

簡単

ユーザーデータを表す JSON オブジェクトを含む入力行を読み取ります(例: {"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オンラインコンパイラ