データを扱ってみよう その3(多次元配列)

お疲れ様です。松本です。
さて前回の「データを扱ってみよう その2(配列)」から若干日が開いてしまいました。今日はその続きで多次元配列を学習します。配列は難しい、難しいといいつつ、前回の内容はそれほど難しくなかったでしょう。
今回の多次元配列もそれほど難しくありません。難しいのは実際の業務で使いこなすときですね。ただ内容は超重要ですのでしっかりと学習しておきましょう。
多次元配列とは?
前回の復習をざっとしておきますと、配列は複数のデータの格納、連想配列はラベル付きのデータの格納でした。
ともに下記のようにしてデータを格納します。
普通の配列
1 |
$kudamono = array("apple","orange","banana"); |
連想配列
1 2 3 4 5 6 |
$person=array( "name"=>"yamada tarou", "height"=>175, "age"=>25, "weight"=>55 ); |
多次元配列はここからさらにステップアップし、配列の中に配列をいれます。これを多次元配列といいます。
一般的なデータの構造
多次元配列と聞くとなんだかとっても難しそうですが、ようは人間がデータを扱う一般的なデータの型と覚えておけばよいのではないでしょうか。
普段皆さんは仕事をされていてたとえばお客さんのリストを作るとき、エクセルなどで作っているでしょう。
よほど特殊な方でない限りは以下のようなリストを作るのではないでしょうか?
日常的に扱うデータとはほとんどがこのような形で収まっているはずです。実はこれをそのまま格納しようとしているのが多次元配列になります。普通の配列では扱えないですし、連想配列でも一列しか格納できません。すべてのデータを格納するには多次元配列を使います。
以前の授業では私はエクセル型配列といっていましたね。
多次元配列の定義
上記のようなエクセルを配列にする場合、PHPでは以下のように配列を定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$persons=array( array( "id" => 1, "name" => "yamada", "age" => 25, "email" => "aaa@gmail.com" ) , array( "id" => 2, "name" => "tanaka", "age" => 31, "email" => "bbb@gmail.com" ) , array( "id" => 3, "name" => "suzuki", "age" => 25, "email" => "ccc@gmail.com" ) ); |
よく見ると配列の中にさらに配列が入っているのがわかると思います。1列1列は連想配列です。連想配列を1つの塊として配列の中に入れている、と考えるとスムーズかと思います。
ちなみに初心者の方はカンマの位置でエラーがでやすいです。
コツとしては上記のように配列をしっかり整理しましょう。別に整理せずに、
1 |
$persons=array( array( "id" => 1, "name" => "yamada tarou", "age" => 25, "email" => "aaa@gmail.com" ) , array( "id" => 2, "name" => "amada tarou", "age" => 25, "email" => "bbb@gmail.com" ) , array( "id" => 3, "name" => "yamada tarou", "age" => 25, "email" => "ccc@gmail.com" ) ); |
のように書いてもいいですが、よほど特殊な思考の方でない限りは見にくい・・・と思うでしょう。
ちなみに実務ですとこの手の書き方をする人にたまにあいます(爆)
値のアクセス、変更、追加
多次元配列のアクセスの仕方も基本的は同じです。たとえばyamadaさんのメールアドレスを表示させたい場合、配列は0番目のemailなので、
1 |
echo $persons[0]["email"]; |
としてあげればOKです。
ちなみにsuzukiさんの年齢を変更(31→33)させたい場合
1 |
$persons[1]['age']=33 |
と書いてあげればOKです。
また一列追加する場合は3番目の配列の追加ということで
1 2 3 4 5 6 |
$persons[3] = array( "id" => 4, "name" => "satou", "age" => 45, "email" => "ddd@gmail.com" ) |
でもよいですが、通常はわざわざ何番目ということを調べるのがめんどいので
1 2 3 4 5 6 7 8 9 |
$person = array( "id" => 4, "name" => "satou", "age" => 45, "email" => "ddd@gmail.com" ) $persons[] = $person; ( array_push( $persons, $person )という書き方でも同じ意味です。 ) |
のように大きい配列の中に小さい配列を入れるという書き方をすることが一般的です。
これで多次元配列の定義と値へのアクセス、変更、追加は終わりです。
「これだけ?」と思った方もいるのではないでしょうか。
確かに基本はこれだけなのですが、あとはこの配列を自由自在に使えることが大事です。まだ他の構文をレクチャーしていないので、発展的な使用法に使い方に関してはおいおい説明をしていきます。
関連記事
-
-
お問い合わせフォームを作ろう! その4(PHP)
お疲れ様です。松本です。 今年は振り返ってみればもう半年が過ぎちゃいましたね。今年はいろいろあ
-
-
データを扱ってみよう その2(配列)
こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ
-
-
PHPで掲示板を作ろう! 掲示板の作成方法 その2
前回の学習 PHPで掲示板を作ろう! 掲示板の作成方法 その1 それでは掲示板の作成方法その
-
-
お問い合わせフォームを作ろう! その3(PHP)
それでは前回のコードを例に少しずつ内容について説明をしていきます。 値を取得するには まず一番最
-
-
PHPで掲示板を作ろう! 掲示板の作成方法 その3(エラーチェックとファイル書き込み)
今回はPHPのコードの説明です。 掲示板の作成方法についてやります。 えー、前回の掲示板
-
-
CMSの大まかな構成
前回に引き続き、CMSの大まかな構成について話したいと思います。 HTMLサイトとの違い CMS
-
-
初心者が読みやすいコードを書くときに気をつけたい4つのポイント
本日のお題は、「読みやすいコードの書き方」についてです。 プログラミングをやりたての頃は機能を
-
-
理論と実践のバランス
ネタ不足&開発のほうが忙しく、一か月以上書いておりませんでした。 今回は漠然とスキルアップする
-
-
WEBエンジニアだったら知っておきたいWEB開発ツール一覧
今回は仕事で使っているソフト、ツールやWEBサービスなんかを紹介していこうと思います。 それほ
-
-
PHPで掲示板を作ろう!(データベース編) その3 データベース作成編
ちょっと間隔があいてしまいましたが、今回はMySQLの講義です。 前回までの記事 PHPで掲示板
- PREV
- 未経験者がWEB系企業の就活で注意すべき5つのポイント
- NEXT
- 文字化けを回避するには
Comment
[…] ①外部装置へのデータ格納 一番大きなポイント。 HTMLでサイトを作る場合、文章や情報はHTMLソースの中に書かれるが、 PHPなどで作るWebアプリの場合、 ソースの中に情報はないことが一般的。 なので、情報を格納しておく外部装置が必要。 テキストファイルを使うケースと、データベースを使うケースがある。 今回は最初なのでテキストファイルを使っているが、 ある程度の規模になるとデータベースを使う。 ②ファイルポインタ ポインタとは、外部装置からデータを読み込む時に必要なるもの。 ファイルポインタとは、どこからファイルに 読み込みや書き込みをするのかの始まりの位置。 ③配列への格納と操作 求めるデータを配列にしっかり格納して、表示できるか。 人間がデータを認識するのは、「配列」という形である。 ※参考:日記0827。プログラミング学習 ※参考:日記0831と0901 ※参考:日記0902 配列の処理はとても重要。 プログラマーである以上、配列処理のような事は毎日やるようになる。 早い段階でこの処理に慣れるのが重要。 配列操作はPHPに限らずプログラムにおいて超重要。 配列の操作ができないプログラマーは、 かわいくないアイドルや体力のないアスリートのようなもの。 配列の操作は簡単に見えがちだが、 実際に操作をすると難易度が上がるので注意。 www.dt30.netデータを扱ってみよう その2(配列) | ガチンコPHP塾http://www.dt30.net/gachinko/?p=103こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログを書いているときに蚊にさされることがありました。蚊はとっても嫌いです(涙) 今回と次回は配列というものを扱います。これをうまく扱えるようになっておきましょう… www.dt30.netデータを扱ってみよう その3(多次元配列) | ガチンコPHP塾http… […]