PHP

【PHP】配列や連想配列が覚えづらかったので学校に例えてみた【初心者向け】

配列苦手君
配列ってなんか覚えにくいんだよね〜、いくつもくっついてたりするし。
配列苦手君
うまい覚え方ないのかなぁ・・

ググって見ても配列のわかりやすい記事があまりなかったので、

小学校に例えてみることにしました。

※わかりやすさ重視でいろいろ説明をはしょっています。

Sponsored link

PHPの配列の使い方〜わかりやすさ重視〜

『PHP』に限らず、ほとんどのプログラミング言語には、『変数』という機能があります。

『変数』というのはざっくりいうと『箱』の事で、

『箱』をつくって、その中に好きな文字や数字を入れて、取り出しやすくしたものです。

※『PHP』の『変数』は、頭に ドルマークが必要になります。

例えばとある学校の、1組をプログラムで表したいとしたら、

と書いたとして、

と書くと、『本田』と表示されます。

ただこの書き方だと、

例えばクラスに30人もいたら変数だらけになってしまいます。

なので、1つの箱にまとめて要素をつっこめる方法があります。

それが『配列』です。

例えば $seito という変数(箱)をつくって、その中にまとめて生徒の名前を追加します。

という形で、 変数(箱)に入れる値を、[]で囲みます。

呼び出す時には、

とすると、長友くんが呼び出されます。

プログラミング初心者
あれ?長友くんは3番目じゃないの?

と思いがちですが、プログラミングは0から数える
事が多く、配列も0から数えるつくりになっていますので、

1,2,3,4,5 ではなく、

0,1,2,3,4 の番号で指定する形ですね。

PHPの連想配列と多次元配列の使い方〜小学校のクラスが複数あったら

プログラミング初心者
1組だけでなく、2組も把握したいんだけどどうしたらいい?

小学校であればもちろん、2組や3組がある学校もありますよね。

そんな場合でも役に立つのが『配列』です。

実は、『配列』の中にさらに『配列』を入れ子にすることができます。(多次元配列といったりします。)

コードにするとこんな感じです。

$seito という変数(箱)の中に, 1組と2組で分けて、それぞれ生徒の名前をまとめています。

2組の2番目の人を呼び出す時はこうやって指定すると、

柴崎くんが呼び出されます。

にすると、槙野くんですね。

PHP 配列(添字配列)と連想配列の違い

$seito という変数の後に、 [‘2kumi’] という文字と、[1] という文字を指定していますが、

PHPでは、

配列の中のどの場所?

というのを指定するために、文字や数字を使うことができます。

配列のキーが数字:配列(添字配列)・・指定なしならこちら
配列のキーが文字:連想配列・・文字から内容を連想しやすい

指定しないと自動的に0から数字が割り振られます

Sponsored link

PHPの連想配列と多次元配列〜小学校の学年が複数あったら

これまでは1学年だけを例にしていましたが、

小学校となると1年生だけではなく、2年生もいますよね。

勘のいい人ならわかると思いますが、

配列の中に配列を入れる事で、学年も表現できます。

コードはこんな感じ。

新たに 2nen や 1nen という項目が増えましたが、その中身は前のコードと同じですね。

例えば2年2組の闘莉王くんを呼び出す時はこんな感じで指定します。

簡単ですね。

これを応用すれば、

例えば30人のクラスがあって、3組あって、6年生まであったとしたら、

30×3×6 = 180 人分の情報になりますが、

『配列』をうまく使えば、

1つの『変数』に180人分の情報をまとめることができます

アオキ
配列パワーすごい←(語彙力

また、配列は何段階も作ることができます。例えば・・

PHPの連想配列と多次元配列〜小学校が複数あったら

仮に熊本小学校と、福岡小学校があったとしたら、

熊本小学校の、
2年の、
1組のだれだれ、

というのも1つの変数(箱)の中に入れることができます。

呼び出しはこんな感じ。

これで松井君が呼び出せます。(fukuokaの方ははしょってますがこれでも動きます。)

Sponsored link

PHP連想配列の覚え方〜補足

プログラミング初心者
名前だけじゃなくて、年齢や性別、クラブ活動なんかも登録できるの?

という場合ももちろんできます、配列ならね。

コードはこんな感じです。

呼び出しはこう。

1番目のage(年齢) なので 6 と表示されます。

もちろん数字ではなく、文字でも指定できます。

呼び出しはこう。

読む分にはこっちの方がわかりやすいかもですね。

PHPの連想配列・多次元配列〜実際のプログラミングでは

実際に小学校の情報をプログラミングで管理しようと思ったら、

生徒達の情報をPHPコードで直書きするのではなく、

Mysqlなどのデーターベースを使って情報を登録しておいて、

PHPからデータベースにつないで情報を表示する、という形になるかと思います。

指定の仕方も変数をいれることが多いので、こういった文字列になるかなと思います。

$seito[$gakko][$gakunen][$kumi][$number]

プログラミング的には数字の方がやりやすいので、

$seito[1][2][0][2]);

というような形を想定しつつプログラミングを組んだりします、が、

初心者
カッコばかりで読みづらいなぁ・・

なんて思ったりすることもあるので、その場合は配列の中身を整理してみるといいかもですね。

Sponsored link

まとめ PHPの配列や連想配列・多次元配列について

実はこの記事は、 #入江開発室 の #voyage というWebアプリケーションのソースコードを見ていた時に、

配列の理解が浅いなと思ったことがきっかけで、まとめてみることにしました。

PHPに限らずプログラミングの規模が大きくなるにつれ、

配列・連想配列・多次元配列は必須になるので、

ぜひしっかり把握した上で、プログラミングライフを楽しみたいものですね。

created by Rinker
¥3,218 (2019/02/19 19:55:03時点 Amazon調べ-詳細)

 

『PHP(Laravel)』ではこんな記事も読まれています。

1. 【PHP】【laravel】CSVエクスポートの方法〜5つのポイント〜

2. 【PHP】オブジェクトと連想配列の違いについて調べてみた【初心者向け】

3. 【PHP】CSVインポートの方法〜大量データもバルクインサートでバッチリ!〜【laravel】

4. 【PHP】【図解】クラスと抽象クラスとインターフェースとトレイトとDIをまとめてみた【初心者向け】

5. 【PHP】配列や連想配列が覚えづらかったので学校に例えてみた【初心者向け】

6. 【PHP】ホームページに天気予報を表示させる方法【Webスクレイピング】【初心者向け】

7. 【Laravel5.5】Webアプリケーションを作るためのゆるめの環境構築編【Node.js】【npm】【Vue.js】【初心者向け】

8. 【PHP】2次元(多次元)配列でデータ取得したいならarray_columnがめっさ便利

 

  • コメント: 0

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


Sponsored link

関連記事

  1. PHP

    【PHP】ホームページに天気予報を表示させる方法【Webスクレイピング】【初心者向け】

    先日とある方よりいただいたご要望。確かに冬になれば、地域によっ…

  2. Laravel

    【PHP】CSVインポートの方法〜大量データもバルクインサートでバッチリ!〜【laravel】

    デスクワークの人なら誰もが知っていると思われる『CSVファイル』。…

  3. PHP

    【PHP】2次元(多次元)配列でデータ取得したいならarray_columnがめっさ便利

    と言ってもおかしくないくらい、『PHP』を扱う時には『配列(連想配…

  4. Laravel

    【PHP】【laravel】CSVエクスポートの方法〜5つのポイント〜

    ちょっと前にPHPでCSVインポートをする方法を書きまして。今回…

  5. PHP

    【PHP】オブジェクトと連想配列の違いについて調べてみた【初心者向け】

    ある程度『PHP』などのプログラミング言語をやっていると必ずといってい…

Sponsored link

最近の記事

アーカイブ

Sponsored link
  1. Django

    【Django】【Laravel】【RubyOnRails】を比較してみた【初心…
  2. PHP

    【PHP】配列や連想配列が覚えづらかったので学校に例えてみた【初心者向け】
  3. アルデュイーノ Arduino

    【Arduino】ラジコンをつくってみた 〜今ドキのプログラミングの覚え方
  4. Vue.js

    Vue.js+Vue-router+BulmaでさくっとSPAをつくってみた【初…
  5. Laravel

    【PHP】【図解】クラスと抽象クラスとインターフェースとトレイトとDIをまとめて…
PAGE TOP