SYNCER

SYNCER

array_merge_recursive() - 複数の配列を再帰的にマージする

公開日:

array_merge_recursiveは、指定した複数の配列を再帰的にマージする関数です。キー名が重複しても、上書きされずにマージされます。

構文

array array_merge_recursive ( array $array1 [, array $... ] )

パラメータ

$array1

対象の配列。

$...

第2引数以降にマージの対象となる配列を複数指定できます。

返り値

array

引数に指定した複数の配列を再帰的にマージしてできた新しい配列。

サンプルコード

再帰的にマージする

array_mergeの場合、キー名が重複すると後の配列の値が前の配列の値を上書きしてしまいます。しかし、array_merge_recursiveの場合は上書きせずに、配列としてマージされます。"b"のキーに注目して下さい。

php

<?php

	// 配列
	$queue1 = [
		"a" => 1 ,
		"b" => 2 ,
	] ;

	$queue2 = [
		"b" => 3 ,
		"c" => 4 ,
	] ;

	// 実行
	$result = array_merge_recursive( $queue1, $queue2 ) ;

	// 返り値
	print_r( $result ) ;

結果 (出力内容) - PHP7.0.21

Array
(
    [a] => 1
    [b] => Array
        (
            [0] => 2
            [1] => 3
        )

    [c] => 4
)

サンドボックス

ソースコードを編集してarray_merge_recursive()の挙動を確認して下さい。

Array
(
    [a] => 1
    [b] => Array
        (
            [0] => 2
            [1] => 3
        )

    [c] => 4
)

参考リンク

  • PHP - 公式マニュアル。