博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php多维数组转码
阅读量:6842 次
发布时间:2019-06-26

本文共 1113 字,大约阅读时间需要 3 分钟。

hot3.png

公司的老项目都是gbk编码的,但是新项目都是utf-8编码的。而项目之间交互涉及汉子难免就需要转码,普通字符串可以之间利用iconv来转码,数组就比较麻烦。以前的同事也写过数组转码的函数。 如下:

/** * 对所有数据类型进行转码 *  * @param mixed $value *        	待转码变量 * @param string $inCharset *        	原编码, gbk * @param string $outCharset *        	目标编码, utf-8 * @return mixed 转码后的数据 */function iconvArray($value, $inCharset = "gbk", $outCharset = "utf-8"){	if (is_array ( $value ))	{		$ret = array ();		foreach ( $value as $key => $one )		{			$ret [$key] = iconv ( $inCharset, $outCharset, $one );			;		}	}	else	{		$ret = iconv ( $inCharset, $outCharset, $value );	}		return $ret;}

很明显,以上函数只支持一维数组转码,对于多维就无能为力了。 以下是自己写的转码函数,不管是字符串,还是一维、多维数组都可使用。

/** * 编码转换(可以是多维数组) * @author shim * @param $data 待转码变量 * @param $in_charset 原编码, gbk * @param $out_charset 目标编码, utf-8 * @return array 转码后的数据 */function iconvArrayA($data, $in_charset = 'gbk', $out_charset = 'utf-8'){	if (is_array($data)) 	{		foreach ($data as $key => $val)		{			$dataA[$key] = iconvArrayA($val, $in_charset, $out_charset);		}		return $dataA;		}	else 	{		return iconv($in_charset, $out_charset, $data);	}	}

转载于:https://my.oschina.net/731135090/blog/693133

你可能感兴趣的文章