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
?>チャレンジ
簡単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入力から連想配列を作成し、次に:
key1に関連付けられた値をアクセスして印刷しますkey2に関連付けられた値を$infoという変数に格納します$infoに格納された値を印刷します
各結果を別々の行に印刷します。
例:
入力が{"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}、title、authorの場合、出力は次のようになります:
The Great Gatsby
F. Scott Fitzgerald入力が{"name": "Laptop", "brand": "TechCo", "price": 999}、brand、priceの場合、出力は次のようになります:
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; // LaptopJSON文字列を連想配列に変換するには 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に格納された値を印刷する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
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