如何给数组命名

时间:2015-02-27 03:59:58

标签: php arrays json multidimensional-array

我有一个包含英语和俄语数据的数组。我将数组转换为json,就像这样

echo json_encode(array(' list'=>$posts));

它转换了阵列,但没有正确显示俄罗斯数据,输出是这样的

{" list":[{"id":"1","type":"\u0439\u0446\u0443\u043a\u0435\u043d","name":"","description":"","location":"","latitude":"","longitude":""},
{"id":"3","type":"","name":"Cafe","description":"","location":"","latitude":"","longitude":""}]}

维护俄语数据我以不同的方式转换了数组,比如

echo json_encode($posts, 256);

并收到以下输出。转换是正确完成的,但问题是数组没有获得前一个输出中的数组名称“list”。

[{"id":"1","type":"йцукен","name":"","description":"","location":"","latitude":"","longitude":""},
{"id":"3","type":"","name":"Cafe","description":"","location":"","latitude":"","longitude":""}

我尝试将这两种方法结合起来,但也没有用。任何人都可以告诉我如何在第二种方法中获取数组名称

1 个答案:

答案 0 :(得分:1)

首先,当陈述并排放置时,应该很容易发现差异:

echo json_encode(array(' list'=>$posts));
echo json_encode($posts, 256);

第一个参数传递的是不同的,所以至少你需要这个:

echo json_encode(array(' list'=>$posts), JSON_UNESCAPED_UNICODE);

其次,"\u0439\u0446\u0443\u043a\u0435\u043d"相当于"йцукен",所以除非你有充分的理由,否则最好只使用默认选项。