对一数组进行转码,原本是这样:
复制代码 代码示例:
unserialize(
iconv('gbk','utf-8',serialize($array)));
结果是空白的。
借助var_export函数,最终函数如下:
复制代码 代码示例:
function array_iconv($in_charset,$out_charset,$arr){
return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
}
原理分析:
var_export函数中,设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?)。
如此便轻松解决了php中数组编码转换的问题了。