PHP array_walk_recursive() Function
Quick summary: The PHP array_walk_recursive() function applies a callback to each element of an array recursively.
PHP array_walk_recursive() Syntax
array_walk_recursive(array &$array, callable $callback, mixed $arg = null): bool
PHP
PHP array_walk_recursive() Basic examples
$arr = [1, [2, 3]];
array_walk_recursive($arr, fn($v) => var_dump($v));
PHP
Output:
int(1)
int(2)
int(3)
Traverses nested arrays and applies the callback to each value.
PHP array_walk_recursive() Real-world usage
$data = ['a'=>1,'b'=>['c'=>2]];
array_walk_recursive($data, fn(&$v)=>$v*=2);
var_dump($data);
PHP
Output:
array(2) {
["a"]=> int(2)
["b"]=> array(1) { ["c"]=> int(4) }
}
Recursively modifies nested values.
PHP array_walk_recursive() Edge cases
var_dump(array_walk_recursive([], fn($v)=>$v));
PHP
Output:
bool(true)
Returns true even for empty arrays.
PHP array_walk_recursive() Common mistakes
Expecting keys in callback
Keys are not passed unless specified.
Incorrect
array_walk_recursive($arr, fn($k,$v)=>null);
Correct
array_walk_recursive($arr, fn($v,$k)=>null);
Callback parameters are (value, key).
PHP array_walk_recursive() Frequently Asked Questions
What does array_walk_recursive() do?
Applies a callback to all elements in a multi-dimensional array.
Does it modify array?
Yes, if values are passed by reference.
Callback parameters?
Value and key.
Works with nested arrays?
Yes.
Return value?
Returns true.
Use case?
Processing deeply nested arrays.
Difference from array_walk()?
Recursive version handles nested arrays.
Can pass extra data?
Yes.
Performance?
Depends on depth.
Can stop iteration?
No.
Supports associative arrays?
Yes.
Alternative?
Recursive loops.