Home > Backend Development > PHP Tutorial > 关于json_encode的数组转json问题

关于json_encode的数组转json问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-23 14:09:30
Original
1002 people have browsed it

我要把一个数组转为json 
数组本来输出是这样

print_r($arrary);//输出结果:Array ([0] => upload/2013/05/09/14303.jpeg [1] => upload/2013/05/09/14300.jpeg [2] => upload/2013/05/09/148.jpeg [3] => upload/2013/05/09/187.jpeg [4] => upload/2013/05/09/14296.jpeg [5] => upload/2013/05/09/203.jpeg ) $jarr=json_encode($arrary);//把数组转为jsonprint_r($jarr);//输出结果:["upload\/2013\/05\/09\/14303.jpeg","upload\/2013\/05\/09\/14300.jpeg","upload\/2013\/05\/09\/148.jpeg","upload\/2013\/05\/09\/187.jpeg","upload\/2013\/05\/09\/14296.jpeg","upload\/2013\/05\/09\/203.jpeg"]
Copy after login

这是怎么回事,json为什么没有键?不是应该是"0":upload/2013/05/09/14303.jpeg 这样的吗?而且原本数组中存的url中多了许多"\" 原来只有"/"的,这是怎么回事?


回复讨论(解决方案)

json数据格式就是这样的,js里调用是没有问题的。

json数据格式就是这样的,js里调用是没有问题的。
但是我看网上的教程不都是"0":upload/2013/05/09/14303.jpeg这样的吗? 而且这个“\”出现是什么原因?


json数据格式就是这样的,js里调用是没有问题的。
但是我看网上的教程不都是"0":upload/2013/05/09/14303.jpeg这样的吗? 而且这个“\”出现是什么原因?

反斜杠\是转义字符的

要是有中文会转码  先  urlencode 再 urldecode就没有 \  中文也行

虽然没有键名,不过不是有,吗
JS的数组的写法和PHP的还是有一定区别的,不是键名=》键值,而是用,隔开
var ar=["upload\/2013\/05\/09\/14303.jpeg","upload\/2013\/05\/09\/14300.jpeg","upload\/2013\/05\/09\/148.jpeg","upload\/2013\/05\/09\/187.jpeg","upload\/2013\/05\/09\/14296.jpeg","upload\/2013\/05\/09\/203.jpeg"];
这里面的ar[0]就是 upload/2013/05/09/14303.jpeg 

\是为了转义/用的,不止是/还有*()等符号在你输出的时候前面都会被加上\,因为它们比较特殊

如果键名是数字,会自动隐藏掉

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template