2015-05-22 59 views
0

我想回顯所有expanded_url和url。 echo $name打印結果。由於嵌套數組,因此echo $value不會打印任何內容。我如何回覆所有值?PHP echo JSON嵌套數組值

$json ='{ "results" : [ { "entities" : 
[ { "urls" : [ { "expanded_url" : "http://www.google.com", 
        "url" : "http://t.co/WZnUf68j" 
        }, { "expanded_url" : "http://www.facebook.com", 
        "url" : "http://t.co/WZnUf68j" 
        }, { "expanded_url" : "http://www.twitter.com", 
        "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)); 

$data = json_decode($json,true); 
foreach($data as $name => $value){ 
    echo $name.'<br>'; 
    echo $value; // NOT WORKING - HOW TO ECHO ALL VALUES  
} 
+1

心不是什麼的var_dump和print_r的一重新爲?但如果你必須,你只需要遞歸地接近它。 – Rooster

+0

你有數組(array(array()));不能做1 foreach跟蹤 –

回答

1

你可以做到這一點與

$data = json_decode($json,true); 
foreach($data["results"][0]["entities"][0]["urls"] as $value){ 
    echo $value['expanded_url']."\n"; 
    echo $value['url']."\n"; 
} 
1

因爲它是一個多維數組,可以遍歷各個層次以到達你想要的。

foreach($data['results'] as $item) { 
    foreach($item['entities'] as $urls) { 
     foreach($urls['urls'] as $element) { 
      echo "expanded_url: {$element['expanded_url']} \n"; 
      echo "url: {$element['url']} \n"; 
     } 
    } 
} 

注:我已經做了各種foreach循環的原因是由於這樣的事實,可能有不同的results或不同entities,所以它是更好地循環,而不是做foreach($data["results"][0]["entities"][0]["urls"] as $value)

Example