簡體   English   中英

在json_decode / multidimensional數組之后訪問JSON數組

[英]Accessing JSON array after json_decode/multidimensional array

我正在從Twitter api進行搜索,使用file_get_contents獲取數據,然后傳遞給json_decode,這給了我這個數組結構。

{"results":[
     {
     "from_user":"A-user-name",
     "from_user_id":457304735,
     "text":"Ich R U #BoysNoize #SuperRola",

          "entities":{

                 "urls":[{
                        "url":"http:\/\/t.co\/WZnUf68j",
                        "expanded_url":"http:\/\/instagr.am\/p\/Vz4Nnbnjd6\/",
                        }]

     }]
]

對於每個推送的推文重復這一步驟。現在,我可以使用foreach循環訪問用戶名和文本,並將每個結果實例分配給變量,然后從變量中提取數據。

foreach($jsonArr['results'] as $item){    

// Takes the Array jsonArr and for every results heading creates an $item

    $user = mysql_real_escape_string($item['from_user']);
    $text = mysql_real_escape_string($item['text']);

這樣可以保存正確的變量OK,但我似乎無法在結果中獲取實體數組中的數據。 如果我打印出實體var,就像我得到的用戶名或文字一樣

ArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

所以它保留了返回的每個結果的數組,但我到底如何訪問它,我一直在搞亂我知道訪問數組數據的其他一些方法,但它們似乎都沒有。 任何有關如何獲取這些值或將它們與foreach集成的幫助將不勝感激

假設您已選擇將JSON解碼為多維數組,而不是作為對象:

foreach ($results as $tweet) {
    $user = $tweet["from-user"];
    $text = $tweet["text"];

    $entities = $tweet["enities"];
    $urls = $entities["urls"];

    foreach ($urls as $url) {
        echo $url["expanded_url"];
    }
}

等等

Array
(
    [results] => Array
        (
            [0] => stdClass Object
                (
                    [entities] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [urls] => Array
                                        (
                                            [0] => stdClass Object
                                                (
                                                    [expanded_url] => http://instagr.am/p/Vz4Nnbnjd6/
                                                    [url] => http://t.co/WZnUf68j
                                                )

                                        )

                                )

                        )

                    [from_user] => A-user-name
                    [from_user_id] => 457304735
                    [text] => Ich R U #BoysNoize #SuperRola
                )

        )

)

訪問網址:

$json_array['results'][0]->entities[0]->urls[0]->url;

有用的代碼:

<?php

$json ='{ "results" : [ { "entities" : 
[ { "urls" : [ { "expanded_url" : "http://instagr.am/p/Vz4Nnbnjd6/",
                    "url" : "http://t.co/WZnUf68j"
                  } ] } ],
        "from_user" : "A-user-name",
        "from_user_id" : 457304735,
        "text" : "Ich R U #BoysNoize #SuperRola"
      } ] }';
$json_array = (array)(json_decode($json));
echo '<pre>';
 //print_r($json_array);

 echo $json_array['results'][0]->entities[0]->urls[0]->url;

?>

做一個print_r($jsonArr); 並且您將能夠使用已解碼的json。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM