採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

連想配列を作る

テクノロジ系 / array-assoc (連想配列・foreach・ソート)

連想配列を作る

Lesson 5 / Chapter 1

添字配列だけだと「何の値か」が分かりにくい

<?php
$person = ["太郎", 20, "東京"];
echo $person[0]; // 太郎
echo $person[1]; // 20
echo $person[2]; // 東京
  • [0] が名前、[1] が年齢…と覚えるのは大変
  • 連想配列 なら「名前」「年齢」「都市」のように キー を付けられる

'キー' => 値 で連想配列を作る

<?php
$person = [
    'name' => '太郎',
    'age'  => 20,
];
print_r($person);

実行結果:

Array
(
    [name] => 太郎
    [age] => 20
)
  • => の左が キー、右が
  • キーは文字列で書くのが基本

$arr['キー'] で値を取り出す

<?php
$person = [
    'name' => '太郎',
    'age'  => 20,
];

echo $person['name'] . "\n"; // 太郎
echo $person['age'] . "\n";  // 20
  • 添字配列の $nums[0] と同じ感覚で、添字の代わりにキーを書く
  • 存在しないキーを指定すると Warning が出る

改行を入れて読みやすく書ける

<?php
$person = [
    'name' => '太郎',
    'age'  => 20,
    'city' => '東京',
];
  • 1 つのキーずつ改行
  • 末尾の要素にも , を付けてよい (PHP では推奨)
  • => の位置を揃えると見やすい

このチャプターでできるようになること

['key' => 値] で連想配列を作れる

$arr['key'] で値を取り出せる

print_r で中身を確認できる

✅ 複数キーを改行で並べて書ける

→ ドリルへ

考えてみよう

既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。

ドリル 01 — name キーだけの連想配列

問題

キー name、値 太郎 を持つ連想配列を作り、$arr['name'] で値を取り出して 1 行出力してください。

期待される出力:

太郎

採点

php scripts/grade.php topics/array-assoc/ch01-assoc-basic/drill/01-single/

ヒント

  • $person = ['name' => '太郎'];
  • echo $person['name'] . "\n";

ドリル 02 — 3 つのキーを出力

問題

以下のキーと値を持つ連想配列を作ってください。

キー
name太郎
age20
city東京

name, age, city の順に値を 1 行ずつ出力してください。

期待される出力:

太郎
20
東京

採点

php scripts/grade.php topics/array-assoc/ch01-assoc-basic/drill/02-multiple/

ヒント

  • ['name' => '太郎', 'age' => 20, 'city' => '東京'] のように 3 キー入れる
  • echo $arr['name'] . "\n"; を 3 回書けば OK

ドリル 03 — 標準入力から連想配列を組む

問題

標準入力から キー=値 形式の文字列が 2 行入力されます。

これを連想配列に格納し、キー name の値と age の値をこの順で 1 行ずつ出力してください。

入力例:

name=太郎
age=20

期待される出力:

太郎
20

採点

php scripts/grade.php topics/array-assoc/ch01-assoc-basic/drill/03-from-input/

ヒント

  • 2 行ループで $line = trim(fgets(STDIN));
  • explode('=', $line) でキーと値に分割
  • [0]key[1]value
  • $person[$key] = $value; で連想配列に追加