PHP

【PHP】入れ子になった連想配列でのfor文の使いかた!

あきぞらです。

基本中の基本なのですが、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) "ツバメ"

動物の一覧が取り出せました。

連想配列の処理はプログラミングの中でも基本中の基本なので、しっかり押さえていきましょう!

-PHP
-

Copyright© あきぞらてっく , 2025 All Rights Reserved Powered by AFFINGER5.