1、php可以直接用json_encode($array);來將數據轉換爲json數據,但僅限於utf8的編碼
2、不是utf8編碼怎麼辦呢
可以用urldecode()來處理數組裏面的數據
下面是網上介紹的方法:
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayRecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
}
function JSON($array) {
arrayRecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
3、但是我遇到了一個問題,我的數組的三維的,這個方法是遞歸調用的,我在服務器上測試了,頁面沒有響應,最多隻能二維的是數組
所以迴歸原問題,直接將數組的編碼轉換爲utf8,直接用json_encode($array);來將數據轉換爲json數據,
數組編碼的轉換方法網上有很多
如:
function mult_iconv($in_charset,$out_charset,$data)
{
if(substr($out_charset,-8)=='//IGNORE'){
$out_charset=substr($out_charset,0,-8);
}
if(is_array($data)){
foreach($data as $key => $value){
if(is_array($value)){
$key=iconv($in_charset,$out_charset.'//IGNORE',$key);
$rtn[$key]=mult_iconv($in_charset,$out_charset,$value);
}elseif(is_string($key) || is_string($value)){
if(is_string($key)){
$key=iconv($in_charset,$out_charset.'//IGNORE',$key);
}
if(is_string($value)){
$value=iconv($in_charset,$out_charset.'//IGNORE',$value);
}
$rtn[$key]=$value;
}else{
$rtn[$key]=$value;
}
}
}elseif(is_string($data)){
$rtn=iconv($in_charset,$out_charset.'//IGNORE',$data);
}else{
$rtn=$data;
}
return $rtn;
}
1、php可以直接用json_encode($array);來將數據轉換爲json數據,但僅限於utf8的編碼
2、不是utf8編碼怎麼辦呢
可以用urldecode()來處理數組裏面的數據
下面是網上介紹的方法: