PHP PHP入門講座 プログラミング

【PHPプログラミング入門講座】[解答と解説] 連想配列のループ処理

PHPプログラミングのキービジュアル

[解答と解説] 連想配列のループ処理

前ページの練習問題「【PHPプログラミング入門講座】[練習問題] 連想配列のループ処理」の解答&解説です。
練習問題が解けたら、このページで答え合わせをしてみましょう!

練習問題1

<実行結果>のように出力するよう、次のPHPプログラムの[記述A]の部分をforeach文を使って書いてください。

<?php
  $map = [
    'yellow' => 'バナナ',
    'red' => 'いちご',
    'green' => 'メロン',
  ];

  foreach([記述A]) {
    echo $value . 'です。<br>';
  }

<実行結果>

バナナです。
いちごです。
メロンです。

練習問題1の解答と解説

<解答>

$map as $key => $value

※ $key は違う変数名でもOKです。処理の中で使われていないため、変数名を特定できないからです。

プログラム全体は次の通りです。

<?php
  $map = [
    'yellow' => 'バナナ',
    'red' => 'いちご',
    'green' => 'メロン',
  ];

  foreach($map as $key => $value) {
    echo $value . 'です。<br>';
  }

<解説>

連想配列を使ったforeach文の( )の中身は「連想配列A as キーの変数A => 値の変数A」の形式になります。

練習問題2

<実行結果>のように出力するよう、次のPHPプログラムの[処理A]の部分を書いてください。

<?php
  $map = [
    '日本' => '東京',
    'アメリカ' => 'ワシントン',
    'イギリス' => 'ロンドン',
  ];

  [処理A]

<実行結果>

日本の首都は東京です。
アメリカの首都はワシントンです。
イギリスの首都はロンドンです。

練習問題2の解答と解説

<解答>

  foreach($map as $key => $value) {
    echo $key . 'の首都は' . $value . 'です。<br>';
  }

ここで使われている変数$keyと$valueの変数名は、違う変数名でもOKです。
プログラムを実際に実行して想定通りに出力されるか、エラーにならないか、確認してみてください。

プログラム全体は次の通りです。

<?php
  $map = [
    '日本' => '東京',
    'アメリカ' => 'ワシントン',
    'イギリス' => 'ロンドン',
  ];

  foreach($map as $key => $value) {
    echo $key . 'の首都は' . $value . 'です。<br>';
  }

<解説>

連想配列を使ったforeach文の( )の中身は「連想配列A as キーの変数A => 値の変数A」の形式になります。

練習問題3

<実行結果>のように出力するよう、次のPHPプログラムの[処理A]の部分を書いてください。

<?php
  $map = [
    'item_1' => '勇者のつるぎ',
    'item_2' => '勇者のたて',
    'item_3' => '勇者のかぶと',
    'item_4' => '勇者のよろい',
  ];

  for($num = 1; $num <= 4; $num++) {
    [処理A]
  }

<実行結果>

1個目のアイテムは「勇者のつるぎ」です。
2個目のアイテムは「勇者のたて」です。
3個目のアイテムは「勇者のかぶと」です。
4個目のアイテムは「勇者のよろい」です。

練習問題3の解答と解説

<解答>

$key = 'item_' . $num;
echo $num . '個目のアイテムは「' . $map[$key] . '」です。<br>';

または、次のように1行で書くこともできます。

echo $num . '個目のアイテムは「' . $map['item_' . $num] . '」です。<br>';

プログラム全体は次の通りです。

<?php
  $map = [
    'item_1' => '勇者のつるぎ',
    'item_2' => '勇者のたて',
    'item_3' => '勇者のかぶと',
    'item_4' => '勇者のよろい',
  ];

  for($num = 1; $num <= 4; $num++) {
    $key = 'item_' . $num;
    echo $num . '個目のアイテムは「' . $map[$key] . '」です。<br>';
  }

<解説>

変数$numを使って、「item_1」、「item_2」、「item_3」、「item_4」という文字列を生成して変数$keyに代入すると、$map[$key]は、連想配列$mapのキー「item_1」、「item_2」、「item_3」、「item_4」に対する値を参照することができます。

おわりに

お疲れ様でした。
いかがでしたでしょうか?

もし間違えた練習問題がありましたら、前の記事「【PHPプログラミング入門講座】連想配列のループ処理」戻って読み直し、再度、練習問題にチャレンジしてください。

正解できた人は、おめでとうございます!
次の記事に進んでいきましょう!

PHPプログラミング入門講座 〜 全記事一覧 〜

-PHP, PHP入門講座, プログラミング
-, , , , , , ,

Copyright© ハッピー・プログラミング・ライフ , 2020 All Rights Reserved.