2013-10-03 76 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