Menu
Coddy logo textTech

キーで値を変更

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

インデックス付き配列の要素を位置によって変更する方法を学んだのと同じように、連想配列ではkeysを使用して値を更新できます。構文は同じです。既存のキーに新しい値を代入します。

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

$person["age"] = 26;
$person["city"] = "London";

echo $person["age"];  // 26
echo $person["city"]; // ロンドン
?>

すでに存在するキーに値を割り当てると、PHPは古い値を新しい値で単純に置き換えます。キー自体は変更されず、関連付けられた値のみが更新されます。

これは、データを時間の経過に伴って変更する必要がある場合に便利です。たとえば、user の status を update したり、product の price を変更したり、誤って入力された情報を修正したりする場合です。キーは安定した参照ポイントとして機能し、値は必要に応じて変更できます。

challenge icon

チャレンジ

簡単

商品の情報を表す JSON オブジェクトを含む入力行を読み取ります(例: {"name": "Laptop", "price": 999, "stock": 50})。

次に、さらに4つの入力を読み取ります。

  • 文字列 key1 - 更新する最初のキー
  • 文字列 value1 - key1 の新しい値
  • 文字列 key2 - 更新する2番目のキー
  • 文字列 value2 - key2 の新しい値

JSON 入力から連想配列を作成し、次の操作を行います。

  1. key1 に関連付けられた値を value1 に更新する
  2. key2 に関連付けられた値を value2 に更新する
  3. key1 の更新された値を出力する
  4. key2 の更新された値を出力する

各結果を別々の行に出力します。

例:

入力が {"name": "Laptop", "price": 999, "stock": 50}price1099stock45 の場合、出力は次のようになります。

1099
45

入力が {"city": "Paris", "country": "France", "population": 2000000}cityLondoncountryUK の場合、出力は次のようになります。

London
UK

自分で試してみよう

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

// 更新するキーと値を読み取る
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));

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

// TODO: 以下にコードを書いてください
// 1. key1に関連付けられた値をvalue1に更新する
// 2. key2に関連付けられた値をvalue2に更新する
// 3. 更新された値を出力する

?>
quiz icon腕試し

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

基礎のすべてのレッスン

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