php数字转换数组中_Php 多维数组中的数据编码格式转换

Php中对一个字符串进行编码格式转换很简单直接使用iconv()函数就可以 比如:iconv(“utf-8”,”gbk”,”我的祖国”)把字符串”我的祖国”的编码格式由utf-8转换成gbk格式,可是如果要对一个数组中的值进行转换如何操作?尤其是多维数组。在php的函数库中没有直接对数组内容进行编码转换的函数,只能自己定义。

对多维数组进行编码转换,在操作中要使用到递归

实例:

下面定义的数组中键和值中都有汉字,是为了在测试中让自定义的转码函数m_iconv更加健全$dd = array(

0,

1,

"d" => "e问问",

"q"=>"444",

"f刚刚"=>array(

3,

4,

"t" => "5方法",

"我"=> "6搜索"

)

);

$d = m_iconv('utf-8','gbk',$dd);

print_r($d);

自己定义数组内容转码函数/**

* php转码函数

* $in_charset 此刻编码

* $out_charset 转码后,输出的编码

* $datas 要转码的数据

*/

function m_iconv($in_charset,$out_charset,$datas){

if(is_array($datas)){                            //如果数据为数组

foreach($datas as $k=>$v){

if(is_array($v)){                        //如果数据为多维数组,进行下面的递归调用m_iconv()函数自身

$k = iconv($in_charset,$out_charset,$k);            //多维数组的键进行转码,这里可以把键设置为汉字测试看看

$ml[$k] = m_iconv($in_charset,$out_charset,$v);

}elseif(is_string($k) || is_string($v)){        //如果是一维数组判断键和值是否为字符串

if(is_string($k)){

$k = iconv($in_charset,$out_charset,$k);

}

if(is_string($v)){

$v = iconv($in_charset,$out_charset,$v);

}

$ml[$k] = $v;

}else{

$ml[$k] = $v;                    //一维数组键和值都为数组

}

}

}elseif(is_string($datas)){                        //如果数据为字符串

$ml = iconv($in_charset,$out_charset,$datas);

}else{

$ml = $datas;                                //如果数据为数值

}

return $ml;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值