ホームページ > バックエンド開発 > PHPチュートリアル > 求一个高效简单的多维数组字符编码转换函数

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

WBOY
リリース: 2016-06-06 20:51:07
オリジナル
1111 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート