php array_walk 和 array_reduce函数
1.array_walk:将数组中的元素(键+值)依次取出传给处理的函数,函数处理完就完了,没有返回值.
$arr1=array(
'name'=>'zhangsan',
'age'=>300,
);
array_walk($arr1,function($val,$key){
echo '参数: '.$key.' 值: '.$val.'<br />';
});
结果:
参数: name 值: zhangsan
参数: age 值: 300
2.array_reduce:将数组中的元素依次传给处理的函数,处理的函数会返回一个最终的结果,作为array_reduce的返回值.
$arr2=array(
array('id'=>1,'name'=>'lilei'), array('id'=>2,'name'=>'tom'), array('id'=>4,'name'=>'hanmei')
);
//获取上面数组的所有id,放到一个数组中
function array_id($arid,$ele){//第一个参数是存放返回值的变量,第二个参数是数组中的元素
$arid[]=$ele['id']; //取得每个小数组的id,放入第一个参数中
return $arid; //将结果返回,这里会替换第一个参数中的内容,然后传第二个小数组进来,把id放入第一个参数,然后再替换掉第一个参数的值
}
$res=array_reduce($arr2,'array_id',array('id'=>10));//这里的第三个参数如果填写的话,这个参数会作为数组的第一个元素传入处理的函数
var_dump($res);
结果:
array(4) { ["id"]=> int(10) [0]=> int(1) [1]=> int(2) [2]=> int(4) } //可以看到10被放在了前面输出
php array_walk 和 array_reduce函数的更多相关文章
- PHP array_reduce()函数的应用解析
实例 向用户自定义函数发送数组中的值,并返回一个字符串: <?php function myfunction($v1,$v2) { return $v1 . "-" . $v ...
- PHP array_reduce() 函数
实例 发送数组中的值到用户自定义函数,并返回一个字符串: <?phpfunction myfunction($v1,$v2){return $v1 . "-" . $v2;} ...
- array_map、array_walk、array_reduce
不同情境下替换foreach,且效果更佳 array_map 遍历原数组,array_map()参数中有几个数组,自定义函数就接收几个参数, 在每个值上进行自定义函数处理,具有返回值,需要一个新数组 ...
- PHP的array_walk和array_map函数实现数组值UTF-8转GBK编码
在PHP中,array_walk() 和 array_map()两个函数都可以实现对数组中每个值的修改,比如本例就是将数组中所有的值,由UTF-8编码转成GBK编码. 当然,除了这两个函数,也可以用 ...
- PHP数组函数: array_walk()与 array_map() 的区别
详细的介绍如下: PHP数组函数: array_walk() PHP数组函数: array_map() 实际应用中的一点区别与总结: array_walk() 主要用于对某个数组的迭代,相当于 for ...
- array_walk函数与call_user_func_array函数
一, php手册的解释: call_user_func_array - 调用回调函数,并把一个数组参数作为回调函数的参数 说明: mixed call_user_func_array ( cal ...
- php数组函数-array_reduce()
array_reduce()函数发送数组中的值到用户自定义函数,并返回一个字符串. 注:如果数组是空的或则初始化值未传递,该函数返回NULL array_reduce(array,myfunction ...
- array_reduce — 用回调函数迭代地将数组简化为单一的值
定义和用法 array_reduce() 函数向用户自定义函数发送数组中的值,并返回一个字符串. 注释:如果数组是空的且未传递 initial 参数,该函数返回 NULL. 说明 array_redu ...
- PHP数组函数总结
array_change_key_case - 返回字符串键名全为小写或大写的数组 array_chunk - 将一个数组分割成多个 array_column - 返回数组中指定的一列 array_c ...
随机推荐
- XML 之 与Json或String的相互转换
1.XML与String的相互转换 [1] XML 转为 String //载入Xml文件 XmlDocument xdoc = new XmlDocument(); xdoc.Load(" ...
- Java中数组的快排
描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成, ...
- 不支持关键字:metadata
将 string sqlConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Cos ...
- js常用代码收藏
--1.遍历string分割为数组 <script language="javascript"> str="2,2,3,5,6,6"; //这是一字 ...
- 关于eclipse中删除多余的工作空间记录
这个Eclipse是拷贝的别人的,前三个是别人在使用这个Eclipse的时候定义的路径,到我本地机器是多余的.如何删除这三个默认的工作空间路径. 这个路径的list是读取的Eclipse中的一个文件, ...
- 【数值方法,水题】UVa 10341 - Solve It
题目链接 题意: 解方程:p ∗ e^(−x) + q ∗ sin(x) + r ∗ cos(x) + s ∗ tan(x) + t ∗ x^2 + u = 0 (0 <= x <= 1) ...
- poj 2104 划分树
思路:裸的划分树 #include<iostream> #include<algorithm> #include<cstring> #include<cstd ...
- 理解Android系统的进程间通信原理(一)----RPC中的代理模式
Android系统中的进程间通信是通过一个轻量级的RPC(Remote Procedure Call远程进程调用)和AIDL(Android Interface Definination Langua ...
- Linux 内核简介
Linux内核简介 一.系统架构 (1). Linux系统架构 ##用户空间: 文件系统 C库 ##内核空间: 接口 内核 (2). Linux内核架构 二.Linux内核源代码 下载地址 www.k ...
- saltstack实战4--综合练习4
Saltstack配置管理-给minion增加Zabbix-agent zabbix-agent的包 [root@A ~]# rpm -qa |grep zabbix zabbix-2.4.8-1.e ...