
あきぞらです。
基本中の基本なのですが、PHP習いたてには連想配列のfor文の扱いにも慣れが必要です。
連想配列の処理について書いていきたいと思います。
たとえばこんな配列があったとします。
$animals = [
'哺乳類' => [
'ex1' => 'ヒト',
'ex2' => 'ゴリラ',
'ex3' => 'ライオン',
],
'爬虫類' => [
'ex1' => 'ヘビ',
'ex2' => 'トカゲ',
'ex3' => 'イグアナ',
'ex4' => 'カメレオン',
],
'鳥類' => [
'ex1' => 'ライチョウ',
'ex2' => 'スズメ',
'ex3' => 'ツバメ',
],
];
'哺乳類'、'爬虫類'、'鳥類'をキーとして、その中に'ex1'、'ex2'・・・をキーとする動物の配列が入っています。
これを、foreachで最初のキー、「哺乳類」や「爬虫類」だけを取り出すときはこう書きます。var_dumpで出力させてみます。
foreach($animals as $key => $examples) {
var_dump($key);
}
$key(ここでは「哺乳類」、「爬虫類」、「鳥類」)ごとにループを回しています。
「$key」「$example」は自分で付けた名前です。
何でもよいですがわかりやすい方が可読性が上がります。
結果 string(9) "哺乳類" string(9) "爬虫類" string(6) "鳥類"
$examplesには、各キーの配列が入っています。$examplesをvar_dumpで出力させてみます。
foreach($animals as $key => $examples) {
var_dump($examples);
}
array(3) {
["ex1"]=>
string(6) "ヒト"
["ex2"]=>
string(9) "ゴリラ"
["ex3"]=>
string(12) "ライオン"
}
array(4) {
["ex1"]=>
string(6) "ヘビ"
["ex2"]=>
string(9) "トカゲ"
["ex3"]=>
string(12) "イグアナ"
["ex4"]=>
string(15) "カメレオン"
}
array(3) {
["ex1"]=>
string(15) "ライチョウ"
["ex2"]=>
string(9) "スズメ"
["ex3"]=>
string(9) "ツバメ"
}
$examplesは、さらに配列になっているので、その要素をさらにforeachで取り出してみます。
foreach($animals as $key => $examples) {
foreach ($examples as $example) {
var_dump($example);
}
}
結果 string(6) "ヒト" string(9) "ゴリラ" string(12) "ライオン" string(6) "ヘビ" string(9) "トカゲ" string(12) "イグアナ" string(15) "カメレオン" string(15) "ライチョウ" string(9) "スズメ" string(9) "ツバメ"
動物の一覧が取り出せました。
連想配列の処理はプログラミングの中でも基本中の基本なので、しっかり押さえていきましょう!