
[解答と解説] 連想配列のループ処理
前ページの練習問題「【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で開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理
- [練習問題] 連想配列のループ処理
- 現在のページ:[解答と解説] 連想配列のループ処理