1 /*函数array_walk():单一数组回调函数---对数组中的每个成员应用用户函数
2 * 1、语法:bool array_walk ( array &array, callback funcname [, mixed $userdata] )
3 * 2、描述:如果成功则返回 TRUE,失败则返回 FALSE
4 * 3、注意事项:
5 * 3.1、$funcname是用户自己 定义的回调函数,接受2个参数,第一个参数为数组$array的值,第二个参数为
6 * 数组$array的键名,如果提供第三个参数$userdata,将作为第三个参数传递给回调函数$funcname
7 * 3.2、使用回调函数可以直接更改数组各个单元的值,但更改各个键名是无效的
8 * 3.3、该函数 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针
9 * 的位置
10 * 3.4、用户不应在回调函数中改变该数组本身,例如增加/删除单元,unset 单元等等,如果 array_walk()
11 * 作用的数组改变了,则此函数的的行为未经定义,且不可预期。
12 */
13 $words=array("l"=>"lemon","o"=>"orange","b"=>"banana","a"=>"apple");
14 //定义一个回调函数,输出数组元素
15 function words_print($value,$key,$prefix){
16 echo "$prefix:$key=>$value<br>\n";
17 }
18 //定义一个回调函数直接改变元素的值
19 function words_alter(&$value,$key){
20 $value=ucfirst($value);
21 $key=strtoupper(key);
22 }
23 //输出元素的值
24 array_walk($words,'words_print','words');
25 //改变元素的值
26 array_walk($words,'words_alter');
27 echo "<pre>";
28 print_r($words);
29 echo "</pre>";
2 * 1、语法:bool array_walk ( array &array, callback funcname [, mixed $userdata] )
3 * 2、描述:如果成功则返回 TRUE,失败则返回 FALSE
4 * 3、注意事项:
5 * 3.1、$funcname是用户自己 定义的回调函数,接受2个参数,第一个参数为数组$array的值,第二个参数为
6 * 数组$array的键名,如果提供第三个参数$userdata,将作为第三个参数传递给回调函数$funcname
7 * 3.2、使用回调函数可以直接更改数组各个单元的值,但更改各个键名是无效的
8 * 3.3、该函数 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针
9 * 的位置
10 * 3.4、用户不应在回调函数中改变该数组本身,例如增加/删除单元,unset 单元等等,如果 array_walk()
11 * 作用的数组改变了,则此函数的的行为未经定义,且不可预期。
12 */
13 $words=array("l"=>"lemon","o"=>"orange","b"=>"banana","a"=>"apple");
14 //定义一个回调函数,输出数组元素
15 function words_print($value,$key,$prefix){
16 echo "$prefix:$key=>$value<br>\n";
17 }
18 //定义一个回调函数直接改变元素的值
19 function words_alter(&$value,$key){
20 $value=ucfirst($value);
21 $key=strtoupper(key);
22 }
23 //输出元素的值
24 array_walk($words,'words_print','words');
25 //改变元素的值
26 array_walk($words,'words_alter');
27 echo "<pre>";
28 print_r($words);
29 echo "</pre>";
运行效果如下:
![](https://images.cnblogs.com/cnblogs_com/zydcl/1.jpeg)