求一个高效简单的多维数组字符编码转换函数
程序员文章站
2022-06-11 13:11:03
...
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么。测测。
推荐阅读