PHP的array_walk和array_map函数实现数组值UTF-8转GBK编码
发布时间:2019-01-07 23:25:16 来源: 点击:
在PHP中,array_walk() 和 array_map()两个函数都可以实现对数组中每个值的修改,比如本例就是将数组中所有的值,由UTF-8编码转成GBK编码。
当然,除了这两个函数,也可以用 foreach 遍历数组实现,不过,相比于直接用 PHP 的内部函数,显然效率更低并且不够优雅。
array_wark() 实现方式如下:
array_map() 实现方式如下:
由此也可以看出这两个函数的共性和区别:
传入这两个函数的 $value,就是数组中的单一个元素。
array_walk() 仅返回true或者false,array_map() 返回处理后的数组;
要得到处理后的元素值,array_walk() 需要在传入参数值加 & 引用符号,array_map() 则需要return返回。
这两种方式都可以实现同样的功能,选择其一即可。
实例:
当然,除了这两个函数,也可以用 foreach 遍历数组实现,不过,相比于直接用 PHP 的内部函数,显然效率更低并且不够优雅。
array_wark() 实现方式如下:
- function array2gbk($array)
- {
- array_walk($array, function(&$value) {
- $value = iconv('utf-8', 'gbk', $value);
- });
- return $array;
- }
array_map() 实现方式如下:
- function array2gbk($array)
- {
- $array = array_map(function($value){
- return iconv('utf-8', 'gbk', $value);
- }, $array);
- return $array;
- }
由此也可以看出这两个函数的共性和区别:
传入这两个函数的 $value,就是数组中的单一个元素。
array_walk() 仅返回true或者false,array_map() 返回处理后的数组;
要得到处理后的元素值,array_walk() 需要在传入参数值加 & 引用符号,array_map() 则需要return返回。
这两种方式都可以实现同样的功能,选择其一即可。
实例:
- function array2utf($data){
- if(is_array($data)){
- return array_map('array2utf', $data);
- }
- return iconv('gbk', 'utf-8//IGNORE', $data);
- }
精彩推荐相关内容
- (2019-10-23)php自定义token类并将生成的token放在ht...
- (2019-11-01)php中curl模拟post提交多维数组
- (2019-08-30)phpcms封装的微信h5支付源码DEMO参考
- (2019-08-31)苹果系统微信自带浏览器不支持form表单p...
- (2013-06-17)新手学PHP和MySQL动态网站开发教程
- (2019-10-23)php接口的token详解
- (2017-09-05)thinkphp3.2实现新版阿里大于短信验证功能
- (2019-08-30)【转载】一个PHP文件搞定微信H5支付
- (2014-02-12)PHP正则表达式使用详解(1)
- (2017-05-11)PHP经典实用正则表达式小结
相关栏目
热门文章
最新图文
-
PHP 中字符编码转换 iconv() 和 mb_convert_encoding() 的区别
- Time:2019-01-07
-
- Time:2017-09-05
-
- Time:2013-06-17
评论排行
- (5)条phpcms筛选功能(经典无错)
- (4)条朋友圈转“贩卖儿童判死”
- (4)条微信即将封杀分销平台?传30
- (3)条做优化,十个最让用户反感的
- (2)条phpcms v9字段筛选教程
- (2)条【织梦bug】织梦5.7进入后台
- (2)条phpcms v9通用api开发教程
- (1)条网页制作技巧教程:网页无障
- (1)条贪吃的阿里:阿里2年疯狂并
- (1)条史上最全SEO高级搜索命令大全