PHP基礎講座:初心者向け 配列と連想配列とForeachの理解

PHP 開発
この記事は 約7 分で読めます。

昨日友達から連絡があってPHPを覚えようと思うと言われヤル気を出したのでこの機会にPHP講座をちょっと書いてみようと思う。

PHPなどのプログラムを使うに当たって非常によく使う関数Foreachと配列について書きたいと思います。かなりわかり易く書くつもりなので、理解出来るまでじっくり読んで欲しいと思います。

PR

配列の作り方(配列変数の作り方)

// 配列の作り方は主に4種類ぐらいあります。
$x = array( '0' => 'abc', '1' => 'def');
// この0とか1と書かれている部分はKeyと呼びまして変数xの中のラベルみたいなものです。
echo $x['0']; 
// このようにすると abc が表示されます。
// 先程の key は指定しなくても問題はありません 指定しない場合の書き方はこうなります
$x = array( 'abc','def');

これでも結局は同じ結果になります。
Keyを指定しない場合は自動的に01234…と自動割り振りされて行きます。
同様にabcを呼び出したい場合は

echo $x['0'];

こうするだけで先ほどと同じ結果 abc が表示されます。
Keyに関しては指定する場合は数字以外でも自由に設定する事が出来ます。

$x = array(
	'item' => 'りんご',
	'price' => '100',
	'color' => '赤'
	);

こんな風にしてショッピングカートでお客さんがカートに入れた内容を記録するように使う用途も考えられますよね。

ダイレクトに変数を設定したい場合はこのようにします。

$x['item'] = 'りんご';
$x['price'] = '100';
$x['color'] = '赤';

こうしても同じなのです。
用途や場面に応じて使い所があるのでこう言うやり方もあるんだーぐらいに覚えてて貰うと良いと思います。
実例で言うと 上記の様な配列で後からpriceを200円にしたくなった場合には

$x['price'] = '200';

これで先程作った配列の中身のPriceの部分だけが変更されます。

またPHP5.6以上での配列の作り方はより簡略化されて居てarrayと言う文字を使わなくても配列を作る事が出来てしまいます。

$x = [ 'item' => 'りんご',
'price' => '200',
'color' => '赤',
];

はい こんな感じで大カッコを使うことでArray(配列)を作ることが出来るのです。
こっちの方がシンプルで使いやすいですね。
現バージョンのPHP7系でもこの書き方が採用されてて今後もこの書き方がメジャーになるのでこの方法で覚えてしまいましょう。

Foreachの理解と使い方

プログラムに於いてループ処理と言うのは嫌と言う程使うんです。
ここでばっちりイメージを掴んで置くと他のForやWhileを扱う時にもイメージが湧くのではないかと思います。

先程まで配列の作り方を勉強しましたよね。
普通の変数とは違って1つの変数に複数のデータが格納されていると言う状態です。

foreachの為に何かデータを用意する

$x = [
	'item' => 'りんご',
	'price' => '100',
	'color' => '赤',
];

はいこれで配列が用意出来ましたから、次はいよいよ foreachでデータを取り出してみましょう

foreach ($x as $key => $value) {
	echo $key.' : '.$value.'<br>';
}

はい こんな感じでOKです $x as $key => $value が中身に入ってますけど、$keyと言うのは先程説明したitemとかpriceとかの部分になります。
もちろん Keyもデータとして取り出すことが出来ます。結果はこうなります。

item : りんご
price : 100
color : 赤

配列のデータのイメージはこんな感じに表現出来ます。

配列の中身

配列の中身

foreachは上から順番にitem → price → color と順番に処理した訳です。
foreachの中身は $x as $key => $value でしたから ソースを見ると

echo $key.' : '.$value.'<br>';

だったので、1回の処理は上記ですから key と その中身の value の部分が取り出されたと言う事になります。
上の画像を見て下さいforeachの中では1行ずつ順番に処理されています。

1回目の処理 item とそのデータ りんご
2回目の処理 price とそのデータ 100
3回目の処理 color とそのデータ 赤

上記が処理された後、次のデータが無くなりましたので これでforeachの処理は終了します。
要するに $xが分解されて それぞれ $key と $value に格納されて表示されたと言う事です。

連想配列とforeach

さて、ここからはちょっと難しくなるかも知れません
しかし、覚えてしまうと簡単だし、WebAPIなどを触ったりRSS Feedを処理する時には頻繁に使いますので絶対マスターしておきたい所ですからしっかり理解して下さい。

連想配列の作り方

連想配列の作り方は先程の配列の作り方を『中で重ねる』のです。

$x = [
		[
		'item' => 'りんご',
		'price' => '100',
		'color' => '赤',
		],
		[
		'item' => 'バナナ',
		'price' => '300',
		'color' => '黄色',
		],
		[
		'item' => 'いちご',
		'price' => '500',
		'color' => '赤',
		],
		[
		'item' => 'メロン',
		'price' => '1000',
		'color' => '緑',
		],
];

もうなんかちょっとややこしいですよね。

でもね、冷静になって見てもらうと、そうでもないんですよ
図にしてイメージ出来るようにして貰うと良いと思います。

連想配列の図

連想配列の図

どうですか?
あぁ~~なるほど!さっきのセットが4つになったのか!と理解出来たかと思います。
もうちょっと分かった人も居ると思いますが連想配列(多次元配列)とは配列の中に配列が入った状態の事を云います。

このような場合のForeachでの書き出し方を紹介します。
前述の配列の所をきっちりマスター出来て居ればそんなに難しい事でも無いのです。

foreach ($x as $key => $value) {
	echo 'item : '.$value['item'].'<br>';
	echo 'price : '.$value['price'].'<br>';
	echo 'color : '.$value['color'].'<hr>';
}

はい こんな感じで出せます。
1回のループで3つのデータを取り出したいので毎回3行の処理をさせてデータを取り出しました。
配列の時にKeyで出していたデータは今回キメ打ちで出すようにしました。

恐らくこれでPHPを今日始めたばかり!って言う初心者の方でも理解出来たかと思います。
ややこしい場合は常に『図』でイメージするとわかりやすいかと思います。

コメント

トップへ戻る