自定义 array_map() 对应的递归函数 array_map_recursive()
2016-07-18 16:39
573 查看
array_walk有个原生递归函数array_walk_recursive($arr,'function','words'),但是array_map却没有对应的递归函数array_map_recursive,我们可以自定义一个:
应用举例:
其实吧,完全可以用array_walk_recursive()函数实现该功能,如下代码所示:
输出:
array(2){
["a"]=>
string(1)"2"
["b"]=>
array(3){
["cc"]=>
string(3)"wen"
["dd"]=>
string(4)"jian"
["ee"]=>
string(3)"bao"
}
}
array(2){
["a"]=>
string(5)"2_AAA"
["b"]=>
array(3){
["cc"]=>
string(7)"wen_AAA"
["dd"]=>
string(8)"jian_AAA"
["ee"]=>
string(7)"bao_AAA"
}
}
延伸阅读:
PHP数组函数大全
functionarray_map_recursive($filter,$data) { $result=array(); foreach($dataas$key=>$val) { $result[$key]=is_array($val) ?array_map_recursive($filter,$val) :call_user_func($filter,$val); } return$result; }
应用举例:
$arr=array( 'a'=>'2', 'b'=>array( 'cc'=>'wen', 'dd'=>'jian', 'ee'=>'bao' ) ); functionfunc_a($value) { $value.='_AAA'; return$value; } var_dump($arr); $arr=array_map_recursive('func_a',$arr); var_dump($arr);
其实吧,完全可以用array_walk_recursive()函数实现该功能,如下代码所示:
$arr=array( 'a'=>'2', 'b'=>array( 'cc'=>'wen', 'dd'=>'jian', 'ee'=>'bao' ) ); functionfunc_b(&$value) { $value.='_AAA'; } var_dump($arr); array_walk_recursive($arr,'func_b'); var_dump($arr);
输出:
延伸阅读:
相关文章推荐
- 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)
- hdu 5167(dfs)
- 浅谈MySQL中优化sql语句查询常用的30种方法
- js对字符串进行编码方法总结
- 文件名搜索分词设计
- 用flume的intercepter作数据格式转换和清洗
- 2016年上半年系统集成项目管理工程师培训感想
- [从头读历史] 第308节 星球战争 BC2599 至 BC2500(公元前26世纪)
- pb_ds(Policy-Based Data Structures)
- SSH整合之org.springframework.web.context.ContextLoaderListener not found问题
- LaTeX技巧168:如何让行间公式左对齐
- L2-011. 玩转二叉树
- ORACLE AWR报告生成过程出现多个实例记录分析
- Codeforces Round #353 (Div. 2) A - Infinite Sequence
- 学习笔记-斯坦福iOS7-第十四课:UIApplication和MapKit
- 预编译头文件之pch文件的创建及使用
- git pull
- JsonCpp使用细谈(Windows平台)
- Android 7(N)网络安全配置
- Executor相关的一些类