php 配列を共通するキーでまとめて結合する

  • 作成日 2021.07.28
  • php
php 配列を共通するキーでまとめて結合する

phpで、array_merge_recursiveを使用して、共通するキーでまとめて結合するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

array_merge_recursive使い方

array_merge_recursiveを使用すれば、共通するキーでまとめて結合することが可能です。

array_merge_recursive(配列,配列,...);

以下は、共通するキーでまとめて結合するサンプルコードとなります。

<?php

$arr1 = ["aaa" => 1, "bbb" => 2, "ccc" => 3];
$arr2 = ["aaa" => 4, "bbb" => 5, "ddd" => 6];

$result = array_merge_recursive($arr1,$arr2);

print_r($result);

実行結果

Array
(
    [aaa] => Array
        (
            [0] => 1
            [1] => 4
        )

    [bbb] => Array
        (
            [0] => 2
            [1] => 5
        )

    [ccc] => 3
    [ddd] => 6
)

キーと値が同じでも、再帰的に結合されます。

<?php

$arr1 = ["aaa" => 1, "bbb" => 2, "ccc" => 3];
$arr2 = ["aaa" => 1, "bbb" => 2, "ddd" => 6];

$result = array_merge_recursive($arr1,$arr2);

print_r($result);

実行結果

Array
(
    [aaa] => Array
        (
            [0] => 1
            [1] => 1
        )

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

    [ccc] => 3
    [ddd] => 6
)

多次元配列でもまとめられます。

<?php

$arr1 = ["aaa" => [1,2], "bbb" => [1,2], "ccc" => 3];
$arr2 = ["aaa" => [3,4], "bbb" => 2, "ddd" => 6];

$result = array_merge_recursive($arr1,$arr2);

print_r($result);

実行結果

Array
(
    [aaa] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
        )

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

    [ccc] => 3
    [ddd] => 6
)