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/04/20 23:39:11時点 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】オブジェクトと連想配列の違いについて調べてみた【初心者向け】

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

  2. Laravel

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

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

  3. PHP

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

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

  4. PHP

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

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

  5. Laravel

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

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

Sponsored link

最近の記事

アーカイブ

Sponsored link
  1. IoT

    【Arduino】ラジコンをつくってみた 〜今ドキのプログラミングの覚え方
  2. 検索システム

    【検索システム】をつくってみた【実際にログインしてさわれます】
  3. MySQL

    検索システムのデータベースの作り方や考え方を8ステップで書き連ねてみる
  4. クリエイティブコーディング

    プログラミングで数学も身につく 一石四鳥なクリエイティブコーディング
  5. 検索システム

    新しいホテルを探すサービスをつくってみました【楽天トラベルAPI】【条件付】
PAGE TOP