[英]Access element of JSON Object which is in an Array
如何訪問數組中的JSON對象元素?
理想情況下,如果數組的大小未知且JSON對象數量未知,我想知道如何執行此操作。
在下面的示例中,我想訪問JSON對象0和19中的id。
array:1 [▼
0 => {#411 ▼
+0: {#157 ▶}
+1: {#167 ▶}
+2: {#192 ▶}
+3: {#200 ▶}
+4: {#206 ▶}
+5: {#227 ▶}
+6: {#235 ▶}
+7: {#259 ▶}
+8: {#269 ▶}
+9: {#281 ▶}
+10: {#299 ▶}
+11: {#308 ▶}
+12: {#316 ▶}
+13: {#325 ▶}
+14: {#335 ▶}
+15: {#352 ▶}
+16: {#362 ▶}
+17: {#380 ▶}
+18: {#390 ▶}
+19: {#402 ▼
+"created_at": "Mon Jan 23"
+"id": 823548040000000000
+"id_str": "823548040000000000"
+"text": "blah blah blah blah blah blah blah"
+"truncated": true
+"entities": {#403 ▶}
+"source": "<a href="http://twitter.com" rel="nofollow">Twitter Web Client</a>"
+"in_reply_to_status_id": null
+"in_reply_to_status_id_str": null
+"in_reply_to_user_id": null
+"in_reply_to_user_id_str": null
+"in_reply_to_screen_name": null
+"user": {#406 ▶}
+"geo": null
+"coordinates": null
+"place": null
+"contributors": null
+"is_quote_status": false
+"retweet_count": 3
+"favorite_count": 8
+"favorited": false
+"retweeted": false
+"possibly_sensitive": false
+"lang": "en"
}
}
]
頂級是一個數組,其中一個元素索引為0(粘貼中的第一行)。 即$ var [0]。
$ var [0]似乎包含一個對象,如果我正確解釋你的粘貼(大括號“0 => {”)。 因此,如果你想訪問它的部分你使用 - >,在你的情況下$ var [0] - > 0或$ var [0] - > 19。
元素0和19是對象(花括號)。 所以要訪問它們,你需要f.ex. 是$ var [0] - > 0-> created_at。
編輯:訪問數字對象屬性並不像人們希望的那樣容易。 但是如果將對象轉換為數組,則可以完成:
((array) $var[0])[0]->created_at
說明:$ var [0]是一個對象,但其屬性是數字。 這是發生T_LNUMBER錯誤的地方。 所以我們將該對象轉換為數組:( array)$ var [0]。 要在結果數組中訪問索引為0的元素,請將其括在括號中:((array)$ var [0])[0]。 (沒有括號(“(array)$ var [0] [0]”)它將是一個二維數組)。 現在我們使用字符串鍵在對象上,可以像往常一樣訪問它。
所以問題更詳細地說明了這一點。
請注意,代碼不可重復使用,它是針對此特定情況量身定制的。 因此,如果在其他地方發生這種情況,您應該編寫一些將數據從對象轉換為數組的函數。
如果使用json_decode(),它會將JSON轉換為PHP變量。 然后你可以像平常那樣訪問元素(數組索引等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.