Menu
Coddy logo textTech

Accessing Values by Key

CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 42/71。

連想配列が何かを理解したところで、それらから値を取得する方法を学びましょう。インデックス配列が数値の位置を使うのと同様に、連想配列は角括弧内のキーを使います。

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

echo $person["name"]; // Alice
echo $person["age"];  // 25
?>

構文は$array["key"]です—括弧内に文字列としてキーを置き、PHP が関連付けられた値を返します。名前がインデックス 0 にあることを覚えるよりもはるかに読みやすいです。

取得した値を変数に格納して、後で使用することもできます:

<?php
$product = [
    "title" => "Laptop",
    "price" => 999
];

$itemName = $product["title"];
echo $itemName; // Laptop
?>

キーは完全に一致する必要があります—大文字小文字を含めて。"Name" の代わりに "name" を使用するとエラーが発生します。PHP はこれらを異なるキーとして扱うためです。

データが PHP 配列ではなく JSON 文字列 として到着することがあります。JSON (JavaScript Object Notation) は、構造化データを表現するための一般的なテキスト形式です。PHP のビルトイン json_decode() 関数は、JSON 文字列を PHP の値に変換します。2 番目の引数に true を渡すと、オブジェクトではなく 連想配列 を返し、馴染みのある $array["key"] 構文で値にアクセスできます。

<?php
$json = '{"name": "Alice", "age": 25}';

$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25
?>
challenge icon

チャレンジ

簡単

1行の入力として、書籍の情報を表すJSONオブジェクト(例:{"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925})を読み込みます。

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

  • アクセスする最初のキーを表す文字列 key1
  • アクセスする2番目のキーを表す文字列 key2

JSON文字列を連想配列に変換するには、組み込みのjson_decode()関数を使用し、2番目の引数にtrueを指定します:
$array = json_decode($jsonString, true);
2番目の引数trueは、PHPに対してオブジェクトではなく連想配列を返すよう指示します。デコード後、連想配列と同じようにキーを使って値にアクセスできます。例:$array["title"]

JSON入力から連想配列を作成し、次に:

  1. key1に関連付けられた値をアクセスして印刷します
  2. key2に関連付けられた値を$infoという変数に格納します
  3. $infoに格納された値を印刷します

各結果を別々の行に印刷します。

例:

入力が{"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}titleauthorの場合、出力は次のようになります:

The Great Gatsby
F. Scott Fitzgerald

入力が{"name": "Laptop", "brand": "TechCo", "price": 999}brandpriceの場合、出力は次のようになります:

TechCo
999

チートシート

連想配列から値を取得するには、四角括弧内のキーを使用します:

$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

echo $person["name"]; // Alice
echo $person["age"];  // 25

構文は $array["key"] です。キーは大文字小文字を区別します。

取得した値を変数に格納できます:

$product = [
    "title" => "Laptop",
    "price" => 999
];

$itemName = $product["title"];
echo $itemName; // Laptop

JSON文字列を連想配列に変換するには json_decode($jsonString, true) を使用します。第2引数の true は、PHPにオブジェクトではなく配列を返すよう指示します:

$json = '{"name":"Alice","age":25}';
$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25

自分で試してみよう

<?php
// JSON入力を読み込む
$jsonInput = trim(fgets(STDIN));

// 2つのキーを読み込む
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: 以下にコードを記述してください
// 1. json_decodeを使用してJSON入力から連想配列を作成する
// 2. $key1に関連付けられた値にアクセスして印刷する
// 3. $key2に関連付けられた値を$infoという変数に格納する
// 4. $infoに格納された値を印刷する

?>
quiz icon腕試し

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

基礎のすべてのレッスン