こんにちは、穏やか暮らし計画ライターのあらです。
前回の記事では「配列」を使って、英語表記から日本語表記するコードをプログラムしてみました。今回は「連想配列」というものを使って、英単語と日本語対応表を作っていきたいと思います。
この記事はシリーズもののブログ記事です。まだ#1の(プログラミング初心者が独学で1から掲示板サイトを作れるのか?【始めた理由と目標編】)から見ていない方は#1からぜひ見てみてください。
連想配列とは
配列は1つの変数名に複数の値を代入して、何番目と表記することで取り出せるという優れものでしたが、連想配列も複数の値を代入することができるまでは一緒ですが、代入する値1つ1つにkey(鍵)を設定することによって、配列よりも取り出すやすいものになっています。
例えば、
- 佐藤くんー先鋒(key)
- 田中くんー中堅(key)
- 鈴木くんー大将(key)
このように連想配列を組んだことにしましょう。この時に、「先鋒は誰!」と質問すると、「佐藤くんです!」と答えてくれるようになる仕組みが連想配列になります。
では、連想配列の基本は押さえたところで、実際に課題をやっていきたいと思います。
連想配列の書き方と表示方法
連想配列は繰り返し構文ですが、今まで繰り返し構文と言ったら、「for」「while」を使っていましたが、今回の連想配列では、配列を反復処理するのに使う「foreach」というのを使うみたいです。
連想配列のキー設定の仕方
- $変数名=['配列'=>'key']
何個か設定したい場合は,(コンマ)を使って、複数組み込みます。=>(イコール大なり)は不等号として扱う訳ではなく、矢印をイメージするとわかりやすいかもしれません。
連想配列の表示方法
- foreach(配列 as キー){繰り返す内容}(配列の値だけ表示させたい場合)
- foreach(配列 as キー=>値){繰り返す内容}(配列とキーの値を表示させたい場合)
以上が連想配列の書き方と表示方法になります。
実際に英単語と日本語の対応表を作ってみる
今回の課題は、連想配列foreachを使って
- apple りんご
- grape ぶどう
- lemon レモン
- tomato トマト
- 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」というプラグインを入れたので、次回から活用したいと思います。
また次回の課題も頑張っていきましょう!
▼私が参考にしている教材
▼前回の記事 「配列」で英語表記を日本語表記にする