[PHP]複数の配列を1つの配列に統合する

3種類の配列結合方法について動作をみてみる。

前提条件として以下

$array1 = array("aaa"=>"111", 2, "3"=>"ccc");
$array2 = array(5, "aaa"=>"222", 1=>"bbb");

※他の配列処理については下記
>>PHPでの配列操作メモ

重複しても値を保持 array_merge_recursive()

実行命令

$array3 = array_merge_recursive($array1, $array2);

結果

$array3 = Array
(
    [aaa] => Array
        (
            [0] => 111
            [1] => 222
        )

    [0] => 2
    [1] => ccc
    [2] => 5
    [3] => bbb
)
  • 結合配列が同じキーを保持していた場合は、該当キーの値は配列化されるが、値を全て保持している
  • 数字キーは番号を振りなおされている
  • 文字列キーである『$array1["3"]』が、数字キーと判断され、キーを当てなおされた

キーと値の関係維持 配列+配列

実行命令

$array4 = $array1 + $array2;

結果

$array4 = Array
(
    [aaa] => 111
    [0] => 2
    [3] => ccc
    [1] => bbb
)
  • キーと値の関係を変更しない
  • 結合配列が同じキーを保持していた場合は、先に入っていた値を保持。

値更新・キー振り直し array_merge()

実行命令

$array5 = array_merge($array1, $array2);

結果

$array5 = Array
(
    [aaa] => 222
    [0] => 2
    [1] => ccc
    [2] => 5
    [3] => bbb
)
  • 結合配列が同じキーを保持していた場合は、後から入っていた値を保持。
  • 文字列キーである『$array1["3"]』が、数字キーと判断され、キーを当てなおされた

コメント

タイトルとURLをコピーしました