2017-04-14 72 views
0

我试图访问一个JSON请求的各个部分,一个典型的反应是:访问JSON值

{ 
    "Overview" : { 
     "firstresultposition" : 1, 
     "totalresultsreturned" : 2, 
     "linkpop" : "2", 
     "domainpop" : "2", 
     "netpop" : "1", 
     "ippop" : "1" 
    }, 
    "Results" : [ 
     { 
     "Links" : [ 
      { 
       "UrlTo" : "http://www.eclecticaartisans.com/", 
       "Anchor" : "Eclectica Artisans' Shop", 
       "nofollow" : "0" 
      } 
     ], 
     "IP" : "64.14.78.39", 
     "Index" : 1, 
     "DomainRank" : "5", 
     "UrlFrom" : "http://www.shoppernews.com/directory.html" 
     }, 
     { 
     "UrlFrom" : "http://shoppernews.com/directory.html", 
     "DomainRank" : "4", 
     "Index" : 2, 
     "IP" : "64.14.78.39", 
     "Links" : [ 
      { 
       "UrlTo" : "http://www.eclecticaartisans.com/", 
       "Anchor" : "Eclectica Artisans' Shop", 
       "nofollow" : "0" 
      } 
     ] 
     } 
    ] 
} 

我想要做的就是2个数据在1分的foreach循环而不是2本:

<?php 
$returnSK = file_get_contents("REQUEST_URL"); 
$seoKicks = json_decode($returnSK, true); 
print "<pre>"; print_r($returnSK); print "</pre>"; 
foreach ($seoKicks['Results'] as $key => $val2) { 
    echo $val2['UrlFrom']; 
    foreach ($val2['Links'] as $arr) { 
     echo $arr['Anchor']; 
    } 
} 
?> 

上面的代码工作正常,但我真的需要访问“UrlFrom”,并使用1个foreach循环“锚”值(如果可能的2层的foreach的上面稍微当添加到数据库中时,将其放入我的实时项目中会很复杂),我们将不胜感激。

+2

什么是你想用链接数据呢?如果一直只有一个,你可以通过索引访问它,而不需要循环,否则你需要迭代或映射Links数组。 – charlietfl

回答

2

有了一个的foreach,

foreach ($seoKicks['Results'] as $key => $val2) { 
    echo $val2['UrlFrom']; 
    echo $val2['Links'][0]['Anchor']; 
} 
+0

没有'$ val2 [0]'。 – Barmar

+2

它应该是'$ val2 ['Links'] [0] ['Anchor']' – Barmar

+0

@Barmar Yesh你是对的,我编辑过它。谢谢。 –