繁体   English   中英

访问JSON PHP数组问题

[英]accessing JSON PHP array issue

嗨,我有这个JSON响应,我想访问每个页面的图像,如果每个页面的ID未知(随机生成),我将如何访问这些图像?

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}";

您正在尝试访问无效的元素。 请尝试以下操作:

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

输出:

File:Romerolagus diazi (dispale) 001.jpg

演示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
)

演示2!

你可以试试看 这工作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM