PHP:2次元配列へのデータの設定方法
あまり使いたくはありませんが、2次元配列で値を定義した方が後々管理が楽になる場合があります。
定義する値が少ないのであれば、以下のように書けば済みます。
<?php $list = array( 1 => array(1 => 'abc', 2 => 'def'), 2 => array(3 => 'hij', 4 => 'klm'), );
あるいは、
<?php $list = array( 1 => array(), 2 => array(), ); $list[1][1] = 'abcj'; $list[1][2] = 'def'; $list[2][3] = 'hij'; $list[2][4] = 'klm';
とも書けます。
今回は2次元目が50個と多く、変更する可能性が高く、上記の書き方では変更した場合の修正が難しく感じたので、修正が簡単になる方法はないかと考えました。
考えた結果、以下のようになりました。
<?php $list = array( 1 => array(), 2 => array(), ); $list1 = array( 1 => 'abc', 2 => 'def', ); $list2= array( 3 => 'hij', 4 => 'klm', ); foreach ($list1 as $key => $value) { $list[1][$key] = $value; } foreach ($list2 as $key => $value) { $list[2][$key] = $value; }
わざわざ代入元の配列を用意して、foreach()を使って代入するほうが手間がかかるのではと思ってしまいます。
代入元の配列を分けたほうが、後々修正が楽と考えて、このように分けています。
代入元の配列が2個や3個であれば、このような書き方はしていないです。