PHP array_walk() Function

Quick summary: The PHP array_walk() function applies a callback to each element of an array.

PHP array_walk() Syntax

array_walk(array &$array, callable $callback, mixed $arg = null): bool
PHP

PHP array_walk() Basic examples

$arr = [1,2,3];
array_walk($arr, fn(&$v) => $v *= 2);
var_dump($arr);
PHP
Output:
array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(6) }

Modifies array values in place.

PHP array_walk() Real-world usage

$data = [' a ', ' b '];
array_walk($data, fn(&$v) => $v = trim($v));
var_dump($data);
PHP
Output:
array(2) { [0]=> string(1) "a" [1]=> string(1) "b" }

Normalizes array values.

PHP array_walk() Edge cases

var_dump(array_walk([], fn($v)=>$v));
PHP
Output:
bool(true)

Returns true even when array is empty.

PHP array_walk() Common mistakes

Expecting a returned array

array_walk modifies the array directly.

Incorrect
$new = array_walk($arr, fn(&$v)=>$v*2);
Correct
array_walk($arr, fn(&$v)=>$v*2);

Do not expect a return value.

PHP array_walk() Frequently Asked Questions

What does array_walk() do?

array_walk() applies a callback to each element of an array.

Does it modify array?

Yes, if values are passed by reference.

Callback parameters?

Value and key.

Can pass extra data?

Yes, via third parameter.

Return value?

Returns true.

Use case?

Modifying array values.

Difference from array_map()?

array_map returns new array, array_walk modifies in place.

Works with associative arrays?

Yes.

Performance?

Good.

Supports nested arrays?

No, use recursive version.

Can stop iteration?

No direct break support.

Alternative?

foreach loop.

PHP array_walk() Related PHP Functions