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 相关文章推荐
mysql 搜索之简单应用
Apr 27 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
PHP 登录完成后如何跳转上一访问页面
Jan 14 PHP
PHP实现GIF图片验证码
Nov 04 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
php设计模式之单例模式代码
Jun 11 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 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读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
python获取多线程及子线程的返回值
2017/11/15 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
2014年机关党委工作总结
2014/12/11 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫