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"; }