【函数功能】
该函数对数组中的每个元素应用用户自定义函数,在函数中,数组的键名和键值是参数。
【函数语法】
array_walk_recursive (array &$array, $callback, $userdata = null)
【参数说明】
&$array:必需,需要操作的数组。
$callback:必需,用户自定义函数的名称。
$userdata:,... 可选,用户自定义函数的参数,可以向此函数传递任意多参数。
【演示程序】
<?php
/**
* array_walk_recursive (array &$array, $callback, $userdata = null)
* **/
function callback_func_1($val,$key){
echo 'key = '.$key.';val = '.$val.'<br>';
}
function callback_func_2($val,$key,$userdata){
echo 'key = '.$key.$userdata.';val = '.$val.'<br>';
}
function callback_func_3(&$val,$key,$userdata){
$val = $userdata;
}
$array = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','site_auth'=>'明礼馨德','site_info'=>array('name'=>'llq','llqqxf','site'=>'pan.muyi.so'));
array_walk_recursive($array, "callback_func_1");
array_walk_recursive($array, "callback_func_2",';欢迎关注PHP1234.cn');
array_walk_recursive($array, "callback_func_3",'php1234.cn');
array_walk_recursive($array, "callback_func_1");
?>
【输出结果】
key = site_name;val = PHP1234
key = site_url;val = php1234.cn
key = site_auth;val = 明礼馨德
key = name;val = llq
key = 0;val = llqqxf
key = site;val = pan.muyi.so
key = site_name;欢迎关注PHP1234.cn;val = PHP1234
key = site_url;欢迎关注PHP1234.cn;val = php1234.cn
key = site_auth;欢迎关注PHP1234.cn;val = 明礼馨德
key = name;欢迎关注PHP1234.cn;val = llq
key = 0;欢迎关注PHP1234.cn;val = llqqxf
key = site;欢迎关注PHP1234.cn;val = pan.muyi.so
key = site_name;val = php1234.cn
key = site_url;val = php1234.cn
key = site_auth;val = php1234.cn
key = name;val = php1234.cn
key = 0;val = php1234.cn
key = site;val = php1234.cn
【特别注意】
1.如果成功则返回 TRUE,否则返回 FALSE。
2.一般情况下 callback 接受两个参数,array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。
3.如果 callback 函数需要的参数比给出的多,则每次 array_walk() 调用 myfunction 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。
4.如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。
5.该函数和array_walk()函数类似,不同的是当数组是多维时,该函数可递归地对每个元素都执行自定义函数。
6.PHP 版本:4+。
【原版定义】
/**
* Apply a user function recursively to every member of an array
* @link http://www.php.net/manual/en/function.array-walk-recursive.php
* @param array array <p>
* The input array.
* </p>
* @param callback callable <p>
* Typically, callback takes on two parameters.
* The array parameter's value being the first, and
* the key/index second.
* </p>
* <p>
* If callback needs to be working with the
* actual values of the array, specify the first parameter of
* callback as a
* reference. Then,
* any changes made to those elements will be made in the
* original array itself.
* </p>
* @param userdata mixed[optional] <p>
* If the optional userdata parameter is supplied,
* it will be passed as the third parameter to the
* callback.
* </p>
* @return bool Returns true on success or false on failure.
*/
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2017/0531/226.html