2013-10-03 28 views
2

对不起,如果这是任何人的重复问题,但在我看来,它似乎不匹配任何其他PHP多维数组问题在这里。我已经阅读了所有内容。 :-(对PHP多维数组格式感到困惑

我试图访问这个数组的值(我无法控制)但它的格式令我困惑,至今我无法理解数值,我认为我应该能够到。

这是我的JSON数组的例子。

{"Result":[{"Links":[{"UrlTo":"blahblahA/","Visited":1380104406,"FirstSeen":1375979058,"PrevVisited":1379817016,"Anchor":"text links","Type":"Text","Flag":[],"TextPre":"","TextPost":""}],"Index":0,"Rating":18.44400799929153,"UrlFrom":"blahblahB","IpFrom":"209.18.x.11","Title":"home page","LinksInternal":16,"LinksExternal":5,"Size":13107},{"Links":[{"UrlTo":"blahblahABC","Visited":1380574695,"FirstSeen":1375979100,"PrevVisited":1379224472,"Anchor":"text links","Type":"Text","Flag":[],"TextPre":"","TextPost":""}],"Index":1,"Rating":11.02675617091105,"UrlFrom":"blahblahXYZ","IpFrom":"209.18.x.11","Title":"Random title","LinksInternal":16,"LinksExternal":5,"Size":13107}]} 

我天真地以为这赋予JSON数组至$ ARR 然后,像这样的解码。

$arr = json_decode($str,true); 

做一次我可以引用像这样的数组值...

$UrlTo = $arr['Result']['Links']['UrlTo']; 

但我显然不理解这一权利。 我花了大量的时间搜索,但仍然没有得到它。 我认为对于比我更有经验的人来说,这是显而易见的吗? 有人可以帮助我理解我的方法的天真性。

+3

只要把'的print_r($ ARR)'在你的文件看到阵列的构建方式 – Martijn

+0

这是否工作:'$ UrlTo = $ arr ['Result'] [0] ['Links'] [0] ['UrlTo'];'? – Nikhil

+0

'[]'代表一个数组。 '[{}]'是数组内的一个对象。 – kapa

回答

5

它是:

$arr['Result'][0]['Links'][0]['UrlTo']; 

$arr['Result']是一个数组,因为是$arr['Result'][0]['Links']

为了得到其他的结果,这样做:

$arr['Result'][1]['Links'][0]['UrlTo']; 
+0

感谢您的所有意见,并且Frits的回答非常好。我确定这是我已经尝试过的一种变化,但显然不是。 经过一番捣乱之后,我想出了一些变量的访问方式稍有不同。如果没有向我解释这个概念,我不会去那里。谢谢。 :-) – user2843205