連想配列同士の合体。
えー、実は特待生割引に応募した次第。
って、こんなへなちょこ野郎に待遇良くして
割り引いてくれるなんざ、奇跡のような話なので、
あまり期待せずに、
毎度の「当たって砕けろ」で応募した訳ですが。
どんな人でも割引になるんだか
多少割り引いていただいたもんだから、
もう頑張っちゃいますから、私っ
てな無駄な助走をつけて、来る開校を心待ちにしているのでした。
そういう訳で。
4月某日より、お勉強します。○△×■×語を。
いやぁ、32才にして勉強人生です。
一生勉強して行きますよー。
てなこったで。
今日のプログラムお勉強タイム中、
例えばですね…
$test1 = array( "aaa"=>"111","bbb"=>"222","ccc"=>"333" );
$test2 = array( "ddd"=>"444","eee"=>"555","fff"=>"666" );
…てな連想配列が2つあってですね。
$test1 に $test2 を合体させたかったんです。
つまり、望む結果は…
$test1 = array( "aaa"=>"111","bbb"=>"222","ccc"=>"333",
"ddd"=>"444","eee"=>"555","fff"=>"666" );
…てな感じなんです。
で、まず思ったのは、配列と聞くと
何か入れるのには、array_push(※perlで言うpush)を
使えばいいじゃないのって思ってしまうんですが。
それを実行しちゃうと、
ちょいと違う結果が待ってるんですね。
$test1 = array( "aaa"=>"111","bbb"=>"222","ccc"=>"333",
[0] => array(
"ddd"=>"444","eee"=>"555","fff"=>"666"
) );
↑こんな感じです。
つまり、$test1は、連想配列じゃなくて
単なる配列の扱いになってしまい(?)
一番最初の配列番号0番に、まだ何も入ってないから
そこに値を入れちまおう!って事になってしまう、と。
そうじゃなくて、ちゃんとkeyはkeyで保持して欲しかったので
ドタバタもがいた結果…
foreach( $test2 as $key => $value ) {
$test1[$key] = $value;
}
…などと、苦し紛れに書いて
回り道しながら、$test1 に $test2 を合体させたんですが。
実はもっと便利な関数があったんだねぇ〜。
$test1 = array_merge( $test1, $test2 );
これが正解でした。
へぇーーー。