【PHP】連想配列foreachを使って、英単語と日本語の対応表を作る!【プログラミング初心者が独学で1から掲示板サイトを作れるのか?Part8】

Web

【PHP】連想配列foreachを使って、英単語と日本語の対応表を作る!【プログラミング初心者が独学で1から掲示板サイトを作れるのか?Part8】

こんにちは、穏やか暮らし計画ライターのあらです。

前回の記事では「配列」を使って、英語表記から日本語表記するコードをプログラムしてみました。今回は「連想配列」というものを使って、英単語と日本語対応表を作っていきたいと思います。

この記事はシリーズもののブログ記事です。まだ#1の(プログラミング初心者が独学で1から掲示板サイトを作れるのか?【始めた理由と目標編】)から見ていない方は#1からぜひ見てみてください。

連想配列とは

配列は1つの変数名に複数の値を代入して、何番目と表記することで取り出せるという優れものでしたが、連想配列も複数の値を代入することができるまでは一緒ですが、代入する値1つ1つにkey(鍵)を設定することによって、配列よりも取り出すやすいものになっています。

例えば、

  1. 佐藤くんー先鋒(key)
  2. 田中くんー中堅(key)
  3. 鈴木くんー大将(key)

このように連想配列を組んだことにしましょう。この時に、「先鋒は誰!」と質問すると、「佐藤くんです!」と答えてくれるようになる仕組みが連想配列になります。

では、連想配列の基本は押さえたところで、実際に課題をやっていきたいと思います。

連想配列の書き方と表示方法

連想配列は繰り返し構文ですが、今まで繰り返し構文と言ったら、「for」「while」を使っていましたが、今回の連想配列では、配列を反復処理するのに使う「foreach」というのを使うみたいです。

連想配列のキー設定の仕方

  • $変数名=['配列'=>'key']

何個か設定したい場合は,(コンマ)を使って、複数組み込みます。=>(イコール大なり)は不等号として扱う訳ではなく、矢印をイメージするとわかりやすいかもしれません。

連想配列の表示方法

  • foreach(配列 as キー){繰り返す内容}(配列の値だけ表示させたい場合)
  • foreach(配列 as キー=>値){繰り返す内容}(配列とキーの値を表示させたい場合)

以上が連想配列の書き方と表示方法になります。

実際に英単語と日本語の対応表を作ってみる

今回の課題は、連想配列foreachを使って

  1. apple りんご
  2. grape ぶどう
  3. lemon レモン
  4. tomato トマト
  5. peach もも

上記5つの対応表を作成させようというものになっています。

先ほどの説明を踏まえ、作成したコードがこちら。こちらのコードを実行してみると

Fatal error:Uncaught Error:Call to undefind functionprint() in /Users/名前/desktop/myphp/sample09.php:10 Stack trace:

#0{main}

throw in/Users/名前/desktop/myphp/sample09.php on line 10

というエラー文が出てしまいました。コードを見ても目立った問題点もなく、色々エラー文について調べてみると、10行目にエラーが出ていることが分かりました。(エラー文の赤い部分on line 10)

エラーになった時に1番注意するポイントは、不等号やスペースが全角になっている場合が多いみたいです。

それを調べる方法としては、vscode内で「command F」を押すことによって、検索機能が使えるみたいです。command Fを押し、全角不等号、スペースを検索すれば全角はないか確認できます。

今回のエラーの原因は、10行目のprintの前の全角スペースでした。それを直したコードがこちら。

ぱっと見、変わりありませんがスペースが全角半角の違いだけで、エラーが起きるのは正直びっくりしました。全角スペースでもエラーが出るのも初めて知りました笑

逆に今まで全角スペースを使っていないことが奇跡に思えます笑

修正したコードの表示結果がこちら。

ちゃんと予想した結果が表示されました!

まとめ

以上で連想配列の課題はクリアとなります!

全角不等号とスペースエラーはたくさんあるみたいで、全角が一目でわかるプラグイン(拡張機能)をVscodeに取り入れている方が多いみたいです。自分も「zenkaku」というプラグインを入れたので、次回から活用したいと思います。

また次回の課題も頑張っていきましょう!

▼私が参考にしている教材

▼前回の記事 「配列」で英語表記を日本語表記にする

  • この記事を書いた人

ara

【AFFINGER6を使ってブログ初心者でも思い通りのサイト運営ができる】をテーマに記事を発信。高校生からブログを始め、特化型ブログでは1年以内に最高月30万PVを達成。特化型ブログの経験を生かし、「MyHP」を立ち上げました。

-Web