配列・連想配列・foreach構文の使い方を超初心者向けに解説

プログラミング・PHP学習

今回は、PHPの配列と連想配列、foreachについて解説します。

配列を最初に学ぶときって、いまいち用途が見えてこないので、理解もしずらい。

40代でプログラミングを学び始めた私も「arrayって、アレ、何??」と、つまづきました。

じゅんこ
じゅんこ

しょーもないダジャレでスイマセン・・・

「最初にこう説明してくれたらなぁ」、という気持ちをこめて、解説していきます。

配列って何?

配列とは、複数の変数に番号を付けて、整理しやすくしたもの。

たとえば、こんなふうに集まった状態の子供がいるとします。

 

じゅんこ
じゅんこ

うーん。

覚えにくい名前。

こんなとき、番号が振ってあると便利ですよね。

「1番の子、こっちきてー」と呼べば、権左衛門くんが来てくれるわけです。

でも、番号がついていると「1番の子、前にでてきてー。」と言えばよいので、非常に効率的。

こんなふうに変数に番号を付けて、ひとつずつ整理できる状態にするのが配列です。

配列の記述方法

PHPでの配列のコードの書き方は、次のとおりです。

変数 = [値A, 値B, 値C…]
取り出すときには、次のように書きます。
変数[番号]

実際に先ほどの子供たちを配列にすると、次のようになります。

権左衛門くんを表示するときは、次のように番号でOK。

ここでひとつ注意点があります。

配列はゼロから始まります

つまり権左衛門くんは「0」番、その次の吉右衛門くんは「1」番となります。

連想配列って何?

次に連想配列について。

先ほどは、配列を使えば番号を振って、整理しやすくなると説明しました。

ただ番号よりも、文字で整理したほうが分かりやすいことも多々あります。

たとえば、こちらのテストの点数を管理する場合など。

・はなこ 80点
・ゆうじ 95点
・さくら 60点

番号を割り振るより、名前と点数をセットにしておいたほうが分かりやすいですよね。

連想配列のイメージ

このように、状況に応じて好きなように名前をつける配列の方法を「連想配列」と呼びます。

この時、名前をキー、その中に入る値をバリューを呼びます。

上記の例では、はなこ、ゆうじ、さくら、といった名前がキー、テストの点数がバリューです。

構文の書き方は、こちら。

変数 = [ キー=> バリュー, キー=> バリュー, キー=> バリュー….]

上記のテスト結果を実際のPHPコードにすると、次のようになります。

ゆうじくんの点数を表示したい場合は、次のようにします。

foreach構文って何?

配列と連想配列を使うとデータの保存が便利にできます。

ただ配列データがいっぱいあるとき、すべて呼び出して処理するのは大変ですよね。

こんな時に便利なのがforeach構文です。

foreach構文を使えば、配列の中のデータをひとつずつ、自動で呼び出してくれます。

構文の書き方はこちら。

foreach (配列名 as ひとつずつの値){実行処理}

先ほどのテスト結果をforeachを使って呼び出すと、次のようになります。

foreachを使って、$test_scoresの中の一つずつの値を$test_scoreとしてセット。

これをひとつずつ表示してね、と命令しています。

このコードを実行すると、次の値が得られます

80点
90点
60点

1回の処理で、3人のテスト結果をすべて表示できるので、便利ですよね。

キーとバリューを両方表示したいとき

なお、上記は点数(バリュー)だけを表示する書き方です。

foreachを使って名前(キー)と点数(バリュー)を一緒に表示することも可能です。

そのためには、次のように構文を書きます。

foreach (配列名 as キー => バリュー){実行処理}

実際のPHPコードサンプルはこちら。

実行すると、次の表示となります。

はなこの点数は80点です。
ゆうじの点数は90点です。
さくらの点数は60点です。

補足:配列の書き方にはarrayとブラケットの2種類ある

最後に、コードの書き方について補足説明をいれます。

今回ご紹介した配列の書き方は【ブラケット】と呼ばれます。

新しいPHPのバージョンでは、この形で配列を記述します。

ただ、実は先ほどの書き方以外にも、もうひとつ書き方があります。

それがこちらの【array】を使った方法。

変数 = array(値A, 値B, 値C…)

取り出すときは、先ほどと同じです。

変数[番号]

コードは、次のようになります。

ほとんどのブラウザ環境はブラケットに対応しているので、この書き方でよいかと思います。

ただ教材を見ている限り、array(アレイ)を使った配列の書き方も多いので、こちらも書いておきます。

まとめ

今回のまとめ
◆配列とは、複数の変数に番号を付けて、整理しやすくしたもの。
◆連想配列は、番号ではなく、文字情報を使って管理できる。
◆foreach構文を使えば、配列データを使って、効率よく処理を実行できる
◆配列は実際にPHPでシステムを作るときにも多用する必須知識

「どうもすっきり分からない」と思っても大丈夫。

実際にコードを書いていくうちに、あるとき、するっと分かるようになります。

じゅんこ
じゅんこ

引き続き、学び続けていきましょう♪

コメント

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