2017-02-09 92 views
1

我有以下的数组的数组:json_encode数组PHP的

array(1) { 
    [0]=> 
    array(2) { 
    [0]=> 
    array(2) { 
     [0]=> 
     string(3) "abc" 
     [1]=> 
     string(3) "įāē" 
    } 
    [1]=> 
    array(2) { 
     [0]=> 
     string(3) "čaē" 
     [1]=> 
     string(3) "qwe" 
    } 
    } 
} 

我用波纹管代码呼应页面上的结果:

echo json_encode($array); 

我得到以下的结果我页面:

[[["abc",null],[null,"qwe"]]] 

每个带有特殊字符的字符串都被转换为空。 所以从来就试图在每个数组中的元素的utf8_encode

foreach($array as &$subarray1){ 
    foreach($subarray1 as &$subarray2){ 
     foreach($subarray2 as &$subarray3){ 
      $subarray3 = utf8_encode($subarray3); 
     } 
    } 
} 

但我得到以下结果:

[[["abc","\u00e1\u00e2\u00e7"],["\u00e8a\u00e7","qwe"]]] 

什么是编码正确的方法?

+0

* “\ u00e1” *表示*“į”* – Nytrix

回答

3

json_encode支持第二个参数,这样你就可以使用常量JSON_UNESCAPED_UNICODE类似如下:

$arr = [ 
    0 => [0 => "abc", 1 => "įāē"], 
    1 => [0 => "čaē", 1 => "qwe"] 
]; 

echo json_encode($arr, JSON_UNESCAPED_UNICODE); 

你可以找到一个演示在这里工作:https://ideone.com/J5bvT5