2017-02-09 200 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