PHP:階層化された連想配列の途中に値を追加するには

階層化された連想配列の途中に値を追加したいのだが・・・


連想配列への値の追加

例えば以下のような連想配列があって
$arr = array("KEY0" => array("KEY00" => "VALUE00"));
  
"KEY00"と同じ階層に"KEY01"を追加したい場合…

以下のやり方ではダメ
※ arr1には追加されるが、元々のarrには反映しない
$arr = array("KEY0" => array("KEY00" => "VALUE00"));

$arr1 = $arr["KEY0"];

$arr1 = array_merge($arr1, array("KEY01" => "VALUE01"));
  

ということで素直にarr配列に対してmergeするが正解のようだ
$arr = array("KEY0" => array("KEY00" => "VALUE00"));

$arr1 = $arr["KEY0"];

$arr = array_merge($arr["KEY0"], array("KEY01" => "VALUE01"));
  

array_mergeは内部的に毎回配列のコピーを作るのかな?
だとするとデカい配列では効率悪すぎるかも


PHP

0 件のコメント:

その他の記事