【函数功能】
该函数对数组中的每个元素应用用户自定义函数,在函数中,数组的键名和键值是参数。
【函数语法】
array_walk (array &$array, $callback, $userdata = null)
【参数说明】
&$array:必需,需要操作的数组。
$callback:必需,用户自定义函数的名称。
$userdata:,... 可选,用户自定义函数的参数,可以向此函数传递任意多参数。
【演示程序】
<?php
/**
* array_walk (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'=>'明礼馨德');
array_walk($array, "callback_func_1");
array_walk($array, "callback_func_2",';欢迎关注PHP1234.cn');
array_walk($array, "callback_func_3",'php1234.cn');
array_walk($array, "callback_func_1");
?>
【输出结果】
key = site_name;val = PHP1234
key = site_url;val = php1234.cn
key = site_auth;val = 明礼馨德
key = site_name;欢迎关注PHP1234.cn;val = PHP1234
key = site_url;欢迎关注PHP1234.cn;val = php1234.cn
key = site_auth;欢迎关注PHP1234.cn;val = 明礼馨德
key = site_name;val = php1234.cn
key = site_url;val = php1234.cn
key = site_auth;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.将键名和 userdata 传递到 myfunction 中是 PHP 4.0 新增加的。
6.PHP 版本:4+。
【原版定义】
/**
* Apply a user function to every member of an array
* @link http://www.php.net/manual/en/function.array-walk.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>
* <p>
* Many internal functions (for example strtolower)
* will throw a warning if more than the expected number of argument
* are passed in and are not usable directly as a
* callback.
* </p>
* <p>
* Only the values of the array may potentially be
* changed; its structure cannot be altered, i.e., the programmer cannot
* add, unset or reorder elements. If the callback does not respect this
* requirement, the behavior of this function is undefined, and
* unpredictable.
* </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/0526/225.html