array_merge_recursive()

PHPのarray_merge_recursive()関数は、複数の配列を再帰的に結合し、ひとつの配列を、新たに作る組み込み関数。

結合する配列に、同じ文字列のキーの配列要素がある場合、同じ文字列のキーのすべての配列要素の値を配列に格納し、そのキーの値とする。

定義

配列型 array_merge_recursive( 配列型 $array1[, 配列型 $...] );

パラメータ

配列型 $array1

最初の配列。

配列型 $…

再帰的に結合する配列。

カンマ,で区切り、複数の配列を指定できる。

戻り値

再帰的結合後の配列。

構文

配列を結合

配列 = array_merge_recursive( 配列1, 配列2 );

「配列1」と「配列2」を再帰的に結合し、新たに「配列」を作る。

5つの配列を結合

配列 = array_merge_recursive( 配列1, 配列2, 配列3, 配列4, 配列5 );

「配列1」から「配列5」の5つの配列を再帰的に結合し、新たに「配列」を作る。

サンプル

複数の連想配列を再帰的に結合し、新たな多次元配列を作成

<pre>
<?php
$array1 = array(
    "red" => "レッド",
    "blue" => "ブルー"
);
$array2 = array(
    "blue" => "青",
    "green" => "緑"
);
$array3 = array(
    "blue" => "あお",
    "green" => "みどり"
);
$varArray = array_merge_recursive( $array1, $array2, $array3 );
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

Array
(
    [red] => レッド
    [blue] => Array
        (
            [0] => ブルー
            [1] => 青
            [2] => あお
        )

    [green] => Array
        (
            [0] => 緑
            [1] => みどり
        )

)

重複しているキー「blue」の値は、「ブルー」と「青」と「あお」を格納した配列になっている点に注目。

重複しているキー「green」の値は、「緑」と「みどり」を格納した配列になっている点に注目。

多次元配列と多次元配列を再帰的に結合し、新たな多次元配列を作成

<pre>
<?php
$array1 = array(
    "english" => array(
        "red" => "Red",
        "blue" => "Blue",
    ),
    "katakana" => array(
        "red" => "レッド",
        "blue" => "ブルー",
    )
);
$array2 = array(
    "katakana" => array(
        "blue" => "ブルー",
        "green" => "グリーン"
    ),
    "kanji" => array(
        "blue" => "青",
        "green" => "緑"
    )
);
$varArray = array_merge_recursive( $array1, $array2 );
print_r( $varArray );
?>
</pre>

↓↓↓出力結果↓↓↓

Array
(
    [english] => Array
        (
            [red] => Red
            [blue] => Blue
        )

    [katakana] => Array
        (
            [red] => レッド
            [blue] => Array
                (
                    [0] => ブルー
                    [1] => ブルー
                )

            [green] => グリーン
        )

    [kanji] => Array
        (
            [blue] => 青
            [green] => 緑
        )

)

重複しているキーである「katakana」の「blue」の値は、「ブルー」と「ブルー」を格納した配列になっている点に注目。

スポンサード リンク

カテゴリー: PHP, 組み込み関数, 編集, 配列 タグ: パーマリンク