PHP

PHPのarray_merge、array_push、array_merge_recursiveで配列をマージした出力結果

PHPで異なる配列データをマージする方法はいくつかありますが、今回配列をマージする関数array_merge、array_push、array_merge_recursiveを使った出力結果をご紹介します。

用意した配列データ

以下の添字配列と連想配列を用意しました。

//添字配列
$arry1 = array('A','B','C');
$arry2 = array('D','E','F');
//連想配列
$rensoarry1 = array(
    'no' => 1,
    'sei' => 'yamada',
    'mei' => 'taro',
    'sex' => 'men',
    'todofuken' => 'tokyo'
);
$rensoarry2 = array(
    'no' => 2,
    'sei' => 'suzuki',
    'mei' => 'ziro',
    'sex' => 'women',
    'city' => 'yokohama'
);

array_mergeを使ったマージ出力結果

添字配列のarray_merge

print_r(array_merge($arry1,$arry2));

添字配列のarray_merge出力結果は、$arry1末尾から$arry2が追加されました。

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
)

連想配列のarray_merge

print_r(array_merge($rensoarry1,$rensoarry2));

連想配列のarray_merge出力結果は、
キーが同じ場合、$rensoarry2に$rensoarry1が上書きされ、キーが異なる場合追加されました。

Array
(
    [no] => 2
    [sei] => suzuki
    [mei] => ziro
    [sex] => women
    [todofuken] => tokyo
    [city] => yokohama
)

array_pushを使ったマージ出力結果

添字配列のarray_push

array_push($arry1,$arry2);
print_r($arry1);

添字配列のarray_push出力結果は、$arry1に1つの添字として末尾に$arry2が追加されました。

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => Array
        (
            [0] => D
            [1] => E
            [2] => F
        )

)

連想配列のarray_push

array_push($rensoarry1,$rensoarry2);
print_r($rensoarry1);

連想配列のarray_push出力結果は、$rensoarry1に1つの添字[0]として末尾に$rensoarry2が追加されました。

Array
(
    [no] => 1
    [sei] => yamada
    [mei] => taro
    [sex] => men
    [todofuken] => tokyo
    [0] => Array
        (
            [no] => 2
            [sei] => suzuki
            [mei] => ziro
            [sex] => women
            [city] => yokohama
        )

)

array_merge_recursiveを使ったマージ出力結果

添字配列のarray_merge_recursive

print_r(array_merge_recursive($arry1, $arry2));

添字配列のarray_merge_recursive出力結果は、
$arry1末尾から$arry2が追加されarray_mergeと同じ結果になりました。

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
)

連想配列のarray_merge_recursive

print_r(array_merge_recursive($rensoarry1, $rensoarry2));

連想配列のarray_merge_recursive出力結果は、
キーごとに各添字がまとめられて出力されました。
array_merge_recursiveは連想配列用時に使うと便利なマージ関数でした。

Array
(
    [no] => Array
        (
            [0] => 1
            [1] => 2
        )

    [sei] => Array
        (
            [0] => yamada
            [1] => suzuki
        )

    [mei] => Array
        (
            [0] => taro
            [1] => ziro
        )

    [sex] => Array
        (
            [0] => men
            [1] => women
        )

    [todofuken] => tokyo
    [city] => yokohama
)

配列をPHPのarray_merge、array_push、array_merge_recursiveを使ってマージした出力結果ページ

一応「配列をPHPのarray_merge、array_push、array_merge_recursiveを使ってマージした出力結果」のページも以下から確認できます。
配列をPHPのarray_merge、array_push、array_merge_recursiveを使ってマージした出力結果ページ

 
※流用される場合は自己責任でお願いします。