array_walk - 对数组的每一个元素应用自定义函数php
array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool
回调函数的参数,第一个是元素值,第二个是元素键名,第三个是可选的 $userdata
。数组
若是只想改变数组值,第一个参数可以使用引用传递,即在参数前加上 &
。app
<?php $fruits = array("a" => "orange", "b" => "banana", "c" => "apple"); function test_alter(&$item1, $key, $prefix) { $item1 = "$prefix: $item1"; } function test_print($item2, $key) { echo "$key. $item2<br />\n"; } echo "Before ...:\n"; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'fruit'); echo "... and after:\n"; array_walk($fruits, 'test_print'); ?>
将输出:函数
Before ...: a. orange b. banana c. apple ... and after: a. fruit: orange b. fruit: banana c. fruit: apple
上面说若是想改变数组的值,必须使用引用传递,因而我想能不能不这样,直接使用返回值,测试了一下,是不行的,由于回调函数的返回值并无用到,猜测此函数的目的主要在把数组的每一个元素遍历一下,即 走 walk
一遍.测试