首页 > 后端开发 > php教程 > 求一个高效简单的多维数组字符编码转换函数

求一个高效简单的多维数组字符编码转换函数

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 20:51:07
原创
1147 人浏览过

function arrayCv($data) {
		if (is_array($data)) {
			
			foreach ($data as $key => $val) {
				if (!is_array($val)) {
					$arr[$key] = iconv('UTF-8', 'GBK',  $val);
				} else {

					$arr[$key] = arrayCv($val);
				}
			}
		} else {
			return iconv('UTF-8', 'GBK',  $data);
		}
		return $arr;

	}
登录后复制
登录后复制

现在是这个样的感觉不优雅,有用array_map, array_walk来实现的吗

回复内容:

function arrayCv($data) {
		if (is_array($data)) {
			
			foreach ($data as $key => $val) {
				if (!is_array($val)) {
					$arr[$key] = iconv('UTF-8', 'GBK',  $val);
				} else {

					$arr[$key] = arrayCv($val);
				}
			}
		} else {
			return iconv('UTF-8', 'GBK',  $data);
		}
		return $arr;

	}
登录后复制
登录后复制

现在是这个样的感觉不优雅,有用array_map, array_walk来实现的吗

试试 array_walk_recursive 。

function arrayCv($data) {
      if (is_array($data)) {
            foreach ($data as $key => $val) {
                 $arr[$key]=arrayCv($val);
           }
      } else {
             return iconv('UTF-8', 'GBK',  $data);
      }
}
登录后复制

==================================================

function myConv(&$value,$key) 
{
    $value=iconv('UTF-8', 'GBK',$value);
}
function arrayCv($data) {
    array_walk($data,"myConv");
}
登录后复制

function ac($input = array()){
    return json_decode(iconv('UTF-8', 'GBK//IGNORE',  json_encode($input,JSON_UNESCAPED_UNICODE)),true);
}
登录后复制

不知道这个行不行。有人用php5.4么。测测。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板