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.