階層化された連想配列の途中に値を追加したいのだが・・・
連想配列への値の追加
例えば以下のような連想配列があって
"KEY00"と同じ階層に"KEY01"を追加したい場合…
以下のやり方ではダメ
※ arr1には追加されるが、元々のarrには反映しない
ということで素直にarr配列に対してmergeするが正解のようだ
array_mergeは内部的に毎回配列のコピーを作るのかな?
だとするとデカい配列では効率悪すぎるかも
1 | $arr = array( "KEY0" => array( "KEY00" => "VALUE00" )); |
以下のやり方ではダメ
※ arr1には追加されるが、元々のarrには反映しない
1 2 3 4 5 | $arr = array( "KEY0" => array( "KEY00" => "VALUE00" )); $arr1 = $arr[ "KEY0" ]; $arr1 = array_merge($arr1, array( "KEY01" => "VALUE01" )); |
ということで素直にarr配列に対してmergeするが正解のようだ
1 2 3 4 5 | $arr = array( "KEY0" => array( "KEY00" => "VALUE00" )); $arr1 = $arr[ "KEY0" ]; $arr = array_merge($arr[ "KEY0" ], array( "KEY01" => "VALUE01" )); |
array_mergeは内部的に毎回配列のコピーを作るのかな?
だとするとデカい配列では効率悪すぎるかも
PHP
0 件のコメント:
コメントを投稿