あきぞらです。
基本中の基本なのですが、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) "ツバメ"
動物の一覧が取り出せました。
連想配列の処理はプログラミングの中でも基本中の基本なので、しっかり押さえていきましょう!