Home >Backend Development >PHP Tutorial >PHP array function array_walk() notes_PHP tutorial
Definition and usage
The array_walk() function applies a callback function to each element in the array. Returns TRUE if successful, FALSE otherwise.
Typically function accepts two parameters. The value of array parameter is used as the first one, and the key name is used as the second one. If the optional parameter userdata is provided, it will be passed to the callback function as the third parameter.
If function requires more arguments than given, an E_WARNING level error will be generated each time array_walk() calls function. These warnings can be suppressed by preceding the array_walk() call with PHP's error operator @, or by using error_reporting().
Grammar
array_walk(array,function,userdata...)
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
function | 必需。用户自定义函数的名称。 |
userdata | 可选。用户输入的值,可作为回调函数的参数。 |
Tips and Notes
Tip: You can set one or more parameters for the function.
Note: If the callback function needs to act directly on the values in the array, you can specify the first parameter of the callback function as a reference: &$value. (see example 3)
Note: Passing key name and userdata into function is new in PHP 4.0.
Example 1
<?php function myfunction($value, $key) { echo "The key $key has the value $value<br />"; } $a = array("a" => "Cat", "b" => "Dog", "c" => "Horse"); array_walk($a, "myfunction");
Output:
The key a has the value Cat
The key b has the value Dog
The key c has the value Horse
Example 2
takes one parameter:
<?php function myfunction($value, $key, $p) { echo "$key $p $value<br />"; } $a = array("a" => "Cat", "b" => "Dog", "c" => "Horse"); array_walk($a, "myfunction", "has the value"); ?>
Output:
a has the value Cat
b has the value Dog
c has the value Horse
Example 3
Change the value of the array element (please note &$value): (This is used more often!)
<?php function myfunction(&$value, $key) { $value = "Bird"; } $a = array("a" => "Cat", "b" => "Dog", "c" => "Horse"); array_walk($a, "myfunction"); print_r($a);
Output:
Array ( [a] => Bird [b] => Bird [c] => Bird )