CakePHP

CakePHP Setクラスのmerge()を使ってみる

CakePHPのSetクラスにある「merge()」を使ってみました。
自分用のメモです。。。

Setクラスの「merge()」はPHP関数である「array_merge()」を再帰的に行ってくれるものです。
簡単に説明すると1つ目の配列に2つ目の配列を結合します。
記述例では

$array1 = array("color" => array("favorite" => "red"), 5);
$array2 = array(10, "color" => array("favorite" => "green", "blue"));
pr(Set::merge($array1,$array2));

結果は

Array
(
    [color] => Array
        (
            [favorite] => green
            [0] => blue
        )

    [0] => 5
    [1] => 10
)

となります。
PHP関数の「array_merge()」では再帰的に行ってくれない部分をサポートしてくれるので、
「array_merge()」の代わりに利用することができます。
ただし注意点としてはPHP関数の「array_merge_recursive()」とは違うので、使い分けが必要な場合もあるかと思います。

ちなみに前述の例の配列を「array_merge_recursive()」で行った場合の結果は次のようになります。

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

コメント