PHP : 2次元配列のイテレーション

sample data

添字あり配列(1次元目)×添字なし・連想配列(2次元目)

<?php

$persons = [
               [
                   'id'=>1, 
                   'name'=>'bob'
               ],
               [
                   'id'=>2, 
                   'name'=>'alice'
               ],
           ];

イテレーション方法

一般的な添字あり配列のイテレーションと同じ方法でイテレートできる。

sample dataの場合、以下となり、$key には 0 および 1 が、$value には連想配列が格納される。 ※配列名を persons に変更している

<?php

foreach ($persons as $key => $value){
    print_r($key) . "\n";
    print_r($value) . "\n";
}

注意点として、 $value の部分には任意の文字を入れることができるので、 $array[key]などセレクタ風の記法の変数を入れることもできるが、これにより $value に代入される値が変わることはない。従って、以下の2パターンのイテレーション文の実行結果は同じになる。

パターン1

<?php

foreach ($persons as $index => $person){
    print_r($person) . "\n";
}

パターン2

<?php

foreach ($persons as $index => $person['Person']){
    print_r($person['Person']) . "\n";
}
/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */