数组php的json_encode

时间:2017-02-09 22:41:01

标签: php arrays 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。 所以我在数组中的每个元素上尝试了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"]]]

对此进行编码的正确方法是什么?

1 个答案:

答案 0 :(得分: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