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 相关文章推荐
模拟OICQ的实现思路和核心程序(三)
Oct 09 PHP
smarty section简介与用法分析
Oct 03 PHP
php error_log 函数的使用
Apr 13 PHP
php 过滤器实现代码
Aug 09 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
PHP获取网站中各文章的第一张图片的代码示例
May 20 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
python操作MySQL数据库的方法分享
2012/05/29 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
Python input函数使用实例解析
2019/11/22 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
医药类个人求职的自我评价
2014/02/12 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
建议书格式
2015/02/04 职场文书
色戒观后感
2015/06/12 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
python实现学员管理系统(面向对象版)
2022/06/05 Python