【PHP初心者向け】配列は「仕切りのある薬箱」だ!0から始まる番号の罠と収納術

配列 プログラミング

似てる大量のデータを変数に入れたい…データの数だけ変数を作る?

以前の変数の記事で、データを入れる「箱($マークのアレ)」について解説しました。

名前をつけて、値を入れる。単純明快です。

しかし、もしあなたが「クラス全員分の名前」を管理することになったらどうしますか?
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番スタートのルールにイラついている方は必見です。

コメント

タイトルとURLをコピーしました