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.

PHP array_walk_recursive() Related PHP Functions