2013-08-19 54 views
0

嗨,我有這個JSON響應,我想訪問每個頁面的圖像,當每個頁面的ID是未知的(隨機生成)時,我將如何訪問這些圖像?訪問JSON PHP數組問題

string(310) "{"query":{"redirects":[{"from":"Romerolagus diazi", 
             "to":"Volcano rabbit"}], 
     "pages":{"4733563": 
      {"pageid":4733563, 
      "ns":0, 
      "title":"Volcano rabbit", 
      "images":[ 
       {"ns":6,"title":"File:Question book-new.svg"}, 
       {"ns":6,"title":"File:Romerolagus diazi (dispale) 001.jpg"}, 
       {"ns":6,"title":"File:Status iucn2.3 EN.svg"} 
        ] 
      }}}}" 

我嘗試:

$result = $json->pages[0]; 
echo "{$result->images}"; 
+0

你的嘗試產生了什麼? –

回答

0

你可以試試這個。這是工作

CODE SAMPLE ONE : 
    $var = json_decode('{"query":{"redirects":[{"from":"Romerolagus diazi","to":"Volcano rabbit"}],"pages":{"4733563":{"pageid":4733563,"ns":0,"title":"Volcano rabbit","images":[{"ns":6,"title":"File:Question book-new.svg"},{"ns":6,"title":"File:Romerolagus diazi (dispale) 001.jpg"},{"ns":6,"title":"File:Status iucn2.3 EN.svg"}]}}}} '); 
    echo "<pre>"; 
    foreach($var->query->pages as $da) 
    { 
    $image_array= $da->images; 
    $i=0; 
    foreach($image_array as $img) 
    {$i++; 
    echo "<Br/> ".$i.")".$images = $img->title;  

    } 

    } 




OR 

CODE SAMPLE TWO : 


$var = json_decode('{"query":{"redirects":[{"from":"Romerolagus diazi","to":"Volcano rabbit"}],"pages":{"4733563":{"pageid":4733563,"ns":0,"title":"Volcano rabbit","images":[{"ns":6,"title":"File:Question book-new.svg"},{"ns":6,"title":"File:Romerolagus diazi (dispale) 001.jpg"},{"ns":6,"title":"File:Status iucn2.3 EN.svg"}]}}}} ',true); 
echo "<pre>"; 

foreach($var['query']['pages'] as $da) 
{ 
$image_array= $da['images'];  
$i=0; 
foreach($image_array as $img) 
{$i++; 
echo "<Br/> ".$i.")".$images = $img['title']; 

} 

} 

Output : 


1)File:Question book-new.svg 
2)File:Romerolagus diazi (dispale) 001.jpg 
3)File:Status iucn2.3 EN.svg 
0

你試圖訪問一個無效的元素。請嘗試以下代替:

echo $json->query->pages->{4733563}->images[1]->title; 

輸出:

File:Romerolagus diazi (dispale) 001.jpg 

Demo 1!


或者,你可以在json_decode第二個參數,如果你想一個關聯數組,而不是設置爲TRUE

$string = '...'; 
$json = json_decode($string, true); 
print_r($json['query']['pages']['4733563']['images'][0]); 

輸出:

Array 
(
    [ns] => 6 
    [title] => File:Question book-new.svg 
) 

Demo 2!