PHP array_replace_recursive() Function

Quick summary: The PHP array_replace_recursive() function replaces values recursively in multi-dimensional arrays.

PHP array_replace_recursive() Syntax

array_replace_recursive(array $array, array ...$replacements): array
PHP

PHP array_replace_recursive() Basic examples

$base = ['a'=>['x'=>1],'b'=>2];
$replace = ['a'=>['x'=>9]];
print_r(array_replace_recursive($base, $replace));
PHP
Output:
Array ( [a] => Array ( [x] => 9 ) [b] => 2 )

Replaces nested array values recursively.

PHP array_replace_recursive() Real-world usage

$defaults = ['db'=>['host'=>'localhost','port'=>3306]];
$config = ['db'=>['port'=>3307]];
print_r(array_replace_recursive($defaults, $config));
PHP
Output:
Array with updated nested port value

Override nested configuration values.

PHP array_replace_recursive() Edge cases

print_r(array_replace_recursive(['a'=>1], ['a'=>['x'=>2]]));
PHP
Output:
Array ( [a] => Array ( [x] => 2 ) )

Scalar values may be replaced with arrays.

PHP array_replace_recursive() Common mistakes

Expecting deep merge behavior

It replaces values, not merges arrays like array_merge_recursive().

Incorrect
array_replace_recursive(['a'=>[1]], ['a'=>[2]]);
Correct
array_merge_recursive(['a'=>[1]], ['a'=>[2]]);

Choose correct function depending on desired behavior.

PHP array_replace_recursive() Frequently Asked Questions

What does array_replace_recursive() do?

Recursively replaces values in arrays.

Use case?

Merging nested configs.

Difference from array_replace()?

Works recursively.

Handles nested arrays?

Yes.

Common mistake?

Unexpected deep overwrite.

Return type?

Array.

Performance?

Moderate.

Safe?

Yes.

Alternative?

array_merge_recursive().

Preserves keys?

Yes.

Best practice?

Use for deep configs.

Modifies original?

No.

PHP array_replace_recursive() Related PHP Functions