array_replace_recursive - 配列を再帰的に、置換して合成する
array_replace_recursiveは、第1引数の配列と第2引数以降の配列を、合成する関数です。同じキーがある場合、後の配列の要素が、前の配列の要素を置き換えるのが特徴です。この関数は、深い階層まで再帰的に処理します。
構文
パラメータ
$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_replace_recursive()なら、同じキーの値を深い階層まで再帰的に比較、処理してくれます。
<?php
/*** このコードは編集できます。 ***/
$array1 = [
"a" => [
"a" => 1,
"c" => 1,
],
] ;
$array2 = [
"a" => [
"a" => 2,
"b" => 2,
],
] ;
$response = array_replace_recursive( $array1, $array2 ) ;
var_dump( $response ) ;
参考
- PHP: array_replace_recursive
- PHPの公式リファレンス。
関連記事
- array_replace
- 配列を置換して合成する。
- array_walk
- ユーザー定義の関数を全ての要素に適用する。
- array_walk_recursive
- ユーザー定義の関数を全ての要素に、再帰的に適用する。
- count
- 配列の要素数を取得する。
- array_merge_recursive
- 複数の配列を再帰的にマージする。
- array_udiff_uassoc
- ユーザー定義のアルゴリズムで、配列の要素の差異を確認する。