Edited at

PHPの多次元配列と連想配列についてのサンプル。

More than 5 years have passed since last update.

PHPの配列について学んできましたので、自分で噛み砕いて理解するために投稿させていただきます。


配列、多次元配列、連想配列?

配列は、数学B的に考えると

A = (1,4,5)

こんな感じで、1列1行は1。みたいな。あのノリがそのままプログラムの配列でも適応できそうです。

多次元配列は

A = (B,C,D)

B = (E,F,G)

F = 3;

まぁ仮にですけど。これを紐解くとAのBのEは3。のような感じ。配列の中に配列を入れているのが多次元配列、だと勝手に思っています。

次に連想配列。これが

生徒 = (山田,田中,高橋)

山田 = (ID,出身,性別)

出身 = (東京)

生徒の山田の出身は東京!

”何”番目が”何”番目が”あれ” ではなく

”生徒”の”田中”の”性別”が”男” が連想配列です。


纏めると...


上記の感じのデータを一纏めにしたのが配列です。

そのような配列に配列をどんどん入れていくのを多次元配列。

そして、「自分で適当に識別名」を用いるのが連想配列。

下記は研修で作成したコードですが、サンプルに載せておきます。

<?php

//下記にプログラムを記載してください。
$list = array(
'山田' => array(
'ID' => '001',
'出身' => '函館',
'メールアドレス' => 'yamada@example.com',
'性別' => '女性'
),
'田中' => array(
'ID' => '002',
'メールアドレス' => 'tanaka@example.com',
'性別' => '男性'
),
'高橋' => array(
'ID' => '003',
'出身' => '札幌',
'メールアドレス' => 'takahasi@example.com',
'性別' => '女性',
),
'井上' => array(
'ID' => '004',
'出身' => '東京',
'メールアドレス' => 'inoue@example.com',
'性別' => '男性',
),
'小林' => array(
'ID' => '005',
'出身' => '大阪',
'メールアドレス' => 'kobayasi@example.com',
'性別' => '男性',
),
'森' => array(
'ID' => '006',
'出身' => '沖縄',
'メールアドレス' => 'mori@example.com',
'性別' => '女性',
)
);

$i = 0;
//配列の中の名前を出す。
foreach($list as $key => $member){
echo $key;
if($i < count($list)-1){
echo ',';
}
$i++;
}

//改行。
echo PHP_EOL;

//配列の中の名前を出す。
echo join(",",array_keys($list)).PHP_EOL;

//出身地札幌の人間を表示する
foreach($list as $key => $member){
if(!isset($member['出身']) || $member['出身'] != '札幌'){
echo $key.PHP_EOL;
}
}

?>

こんな感じで多次元配列を作れるようです。

ビルドしていると、きちんと出ると思います。

この部分を理解しておかないとMySQLと連携して

色々な要素を持ったデータを扱うときにめちゃくちゃ苦労します。(しました。)