SYNCERのロゴ
アイキャッチ画像

array_replace_recursive - 配列を再帰的に、置換して合成する

array_replace_recursiveは、第1引数の配列と第2引数以降の配列を、合成する関数です。同じキーがある場合、後の配列の要素が、前の配列の要素を置き換えるのが特徴です。この関数は、深い階層まで再帰的に処理します。

構文

array array_replace_recursive ( array $array1 , array $array2 [, array $... ] )

パラメータ

$array1

対象の配列。

$array2

合成する配列。

$...

第3引数、第4引数、と合成する配列を指定できる。

返り値

array

合成してできた配列。

サンプルコード

<?php
	$array1 = [
		"a" => [
			"a" => 1,
			"c" => 1,
		],
	] ;

	$array2 = [
		"a" => [
			"a" => 2,
			"b" => 2,
		],
	] ;

	$response = array_replace( $array1, $array2 ) ;

デモ

array_replace()の処理が適用されるのは、一次元目までです。

<?php
/*** このコードは編集できます。 ***/

	$array1 = [
		"a" => [
			"a" => 1,
			"c" => 1,
		],
	] ;

	$array2 = [
		"a" => [
			"a" => 2,
			"b" => 2,
		],
	] ;

	$response = array_replace( $array1, $array2 ) ;

	var_dump( $response ) ;
array(1) {
  ["a"]=>
  array(2) {
    ["a"]=>
    int(2)
    ["b"]=>
    int(2)
  }
}

array_replace_recursive()なら、同じキーの値を深い階層まで再帰的に比較、処理してくれます。

<?php
/*** このコードは編集できます。 ***/

	$array1 = [
		"a" => [
			"a" => 1,
			"c" => 1,
		],
	] ;

	$array2 = [
		"a" => [
			"a" => 2,
			"b" => 2,
		],
	] ;

	$response = array_replace_recursive( $array1, $array2 ) ;

	var_dump( $response ) ;
array(1) {
  ["a"]=>
  array(3) {
    ["a"]=>
    int(2)
    ["c"]=>
    int(1)
    ["b"]=>
    int(2)
  }
}
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年6月26日 (月)
コンテンツを公開しました。