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制作图型计数器的例子
Oct 09 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
php的字符串用法小结
Jun 08 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP与Perl之间知识点区别整理
Mar 19 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中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
详解10分钟学会vue滚动行为
2017/09/21 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
Python自动登录126邮箱的方法
2015/07/10 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Django 实现下载文件功能的示例
2018/03/06 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
对pandas处理json数据的方法详解
2019/02/08 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
python求解汉诺塔游戏
2020/07/09 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
工程管理英文求职信
2014/03/18 职场文书
运动会广播稿20字
2015/08/19 职场文书
初中美术教学反思
2016/02/17 职场文书
浅谈MySQL函数
2021/10/05 MySQL