首頁 > 後端開發 > php教程 > 求一个高效简单的多维数组字符编码转换函数

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

WBOY
發布: 2016-06-06 20:51:07
原創
1109 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板