php array_walk 对数组中的每个元素应用用户自定义函数详解


Posted in PHP onNovember 18, 2016

php array_walk 对数组中的每个元素应用用户自定义函数

array_walk 使用用户自定义函数对数组中的每个元素做回调处理

基本语法

bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )

将用户自定义函数 funcname 应用到 array 数组中的每个单元。

array_walk() 不会受到 array 内部数组指针的影响。 array_walk() 会遍历整个数组而不管指针的位置。

参数介绍:

参数 描述
array 必需。输入的数组。 
funname 必需。用户自定义函数的名称。典型情况下 funcname 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果 funcname 需要直接作用于数组中的值,则给 funcname 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。
userdata 可选。规定用户自定义函数的参数。如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname。

说明:

1.array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。

2.典型情况下 funname接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。

3.如果 funname函数需要的参数比给出的多,则每次 array_walk() 调用 funname时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。

4.如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用。

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE 。

实例:

<?php
$fruits = array(
  "d" => "lemon",
  "a" => "orange",
  "b" => "banana",
  "c" => "apple"
);
function test_alter(&$item1, $key, $prefix) {
  $item1 = " $prefix : $item1 ";
}
function test_print($item2, $key) {
  echo " $key . $item2 <br />";
}
echo "Before ...:<br />";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:<br />";
array_walk($fruits, 'test_print');
?>

运行结果:

Before ...:
d . lemon
a . orange
b . banana
c . apple
... and after:
d . fruit : lemon
a . fruit : orange
b . fruit : banana
c . fruit : apple

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
PHP 增加了对 .ZIP 文件的读取功能
Oct 09 PHP
php select,radio和checkbox默认选择的实现方法
May 15 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
php实现webservice实例
Nov 06 PHP
php获取远程文件内容的函数
Nov 02 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
YII框架批量插入数据的方法
Mar 18 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 PHP
详解使用php-cs-fixer格式化代码
Sep 16 PHP
PHP屏蔽关键字实现方法
Nov 17 #PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 #PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 #PHP
PHP版单点登陆实现方案的实例
Nov 17 #PHP
php实现URL加密解密的方法
Nov 17 #PHP
PHP读取zip文件的方法示例
Nov 17 #PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 #PHP
You might like
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
php 常用的系统函数
2017/02/07 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
使用ECharts实现状态区间图
2018/10/25 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
谈谈如何手动释放Python的内存
2016/12/17 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
2014年政工师工作总结
2014/12/18 职场文书
部队个人年终总结
2015/03/02 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书