2017-02-09 3 views
1

私は、配列の次の配列を持っている:json_encode

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"]]] 

特殊文字を含むすべての文字列はnullに変換されます。

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

をしかし、私は次のような結果を得る: だからI'veは、配列内の要素のそれぞれにutf8_encodeを試してみました

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

これをエンコードする適切な方法は何を?あなたは次のように一定のJSON_UNESCAPED_UNICODEを使用できるように

+0

* "\ u00e1を" *は*を意味する "į" * – Nytrix

答えて

3

json_encode、2番目のパラメータをサポートしています。

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

echo json_encode($arr, JSON_UNESCAPED_UNICODE); 

あなたはここで働いデモを見つけることができます:https://ideone.com/J5bvT5