frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

連想配列同士の合体。

えー、実は特待生割引に応募した次第。

って、こんなへなちょこ野郎に待遇良くして

割り引いてくれるなんざ、奇跡のような話なので、

あまり期待せずに、

毎度の「当たって砕けろ」で応募した訳ですが。

どんな人でも割引になるんだか

多少割り引いていただいたもんだから、

もう頑張っちゃいますから、私っ

てな無駄な助走をつけて、来る開校を心待ちにしているのでした。

そういう訳で。

4月某日より、お勉強します。○△×■×語を。

いやぁ、32才にして勉強人生です。

一生勉強して行きますよー。

てなこったで。

今日のプログラムお勉強タイム中、

PHPでぶつかった問題は、連想配列同士の合体でした。

例えばですね…

   $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 );

これが正解でした。

へぇーーー。

めも。

STACKLIST

データベースを無料で提供。

DBレンタルというよりも、

商用の商品管理システムを無料レンタルしてるっぽい。

覚えておくべき単語。