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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
Windows7下的php环境配置教程
Feb 28 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
php通过各种函数判断0和空
Jul 04 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 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
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php使用codebase生成随机数
2014/03/25 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
教导主任竞聘演讲稿
2014/05/16 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python