似てる大量のデータを変数に入れたい…データの数だけ変数を作る?
以前の変数の記事で、データを入れる「箱($マークのアレ)」について解説しました。
名前をつけて、値を入れる。単純明快です。
しかし、もしあなたが「クラス全員分の名前」を管理することになったらどうしますか?
30人なら30個、100人なら100個の箱を用意しますか?
$name1 = "田中";
$name2 = "佐藤";
$name3 = "鈴木";
// ...これが100まで続くCode language: PHP (php)
これはプログラミングではありません。ただの苦行です。
部屋中が段ボール箱で埋め尽くされ、足の踏み場もなくなります。
そんな時に使うのが「配列(Array)」です。
これは、バラバラの箱をガムテープで連結したものではありません。最初から区切られている「仕切りのある薬箱(ピルケース)」です。
配列:データを一箇所に詰め込む収納ケース
配列とは、一つの名前に複数のデータを持たせる仕組みです。
イメージしてください。これまでは「田中」と書かれた箱、「佐藤」と書かれた箱を個別に管理していました。
配列は違います。
「出席簿」という大きな箱の中に、仕切りを作って全員をぶち込みます。
箱の名前は一つだけ。管理が劇的に楽になります。
作り方:カンマで区切るだけ
PHPでの書き方は非常にシンプルです。
角括弧 [ ] を使い、中身をカンマで区切ります。
$members = ["田中", "佐藤", "鈴木"];Code language: PHP (php)
これで完了です。$members という一つの箱の中に、3つのデータが整然と並んで格納されました。
昔のPHP(5.3以前)では array() という書き方をしていましたが、今は短くてスタイリッシュな[]が主流です。
古い書き方を見かけても「化石だな」と思ってスルーしてください。
取り出し方:「0番目」という初見殺しの罠
ここからが本番です。
箱に入れたデータを取り出すには、「何番目の仕切りに入っているか」を指定します。これを「インデックス(添字)」と呼びます。
しかし、プログラミングの世界には奇妙なルールがあります。
「数は0から数える」
echo $members[0]; // 結果:田中
echo $members[1]; // 結果:佐藤
echo $members[2]; // 結果:鈴木Code language: PHP (php)
「1番目の田中を出せ」と思って [1] を指定すると、2番目の佐藤が出てきます。
なぜこんな意地悪をするのか。
これは「先頭からの距離(オフセット)」を表しているからです。
- 先頭(田中)は、スタート地点から「0歩」の場所にいます。だから0です。
- 佐藤は、スタート地点から「1歩」進んだ場所にいます。だから1です。
納得できなくても、そういうものだと脳に刷り込んでください。
「配列は0スタート」。これを忘れると、データが一つずつズレていく怪奇現象に悩まされます。
追加:後ろに勝手にくっつく
データは後から追加できます。この時、いちいち「次は3番目だから…」と数える必要はありません。
空っぽの角括弧 [] を使うと、自動的に「一番後ろ」に追加されます。
$members[] = "高橋";
// これで $members[3] に"高橋"が入るCode language: PHP (php)
非常に賢い。
満員電車に無理やり押し込むのではなく、最後尾に車両を増やすイメージです。
まとめ:散らかった部屋を片付けろ
配列を使えば、コードの見通しが良くなります。
- まとめる:
["A", "B", "C"]で一つの箱にする - 取り出す:
[0]から始まる番号で指名する - 増やす:
[]で後ろに追加する
バラバラのデータを放置するのは、汚部屋の住人と同じです。
関連するデータは配列というケースに収納し、スマートに管理してください。
次回は、この配列の中身を「番号」ではなく「好きなラベル」で管理する「連想配列」について解説します。
0番スタートのルールにイラついている方は必見です。



コメント