2017-04-14 3 views
0

ich verschiedene Teile einer json-Anfrage, eine typische Antwort zuzugreifen versuch ist:Zugang JSON Werte innerhalb eines foreach

{ 
    "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" 
      } 
     ] 
     } 
    ] 
} 

Was ich versuche, zwei Stücke von Daten in dem 1 foreach zu tun bekommen ist Schleife statt 2 folgt aus:

<?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']; 
    } 
} 
?> 

Der obige Code funktioniert gut, aber ich brauche wirklich die „UrlFrom“ für den Zugriff auf und die „Anchor“ Werte der 1 foreach-Schleife zu verwenden, wenn möglich (die 2 foreach ist oben etwas mehr ist kompliziert, wenn in mein Live-Projekt bei der Datenbank hinzugefügt wird, würde jede Hilfe geschätzt werden.

+2

was Sie mit den Verbindungen Daten zu tun versuchen? Wenn es immer nur eins geben wird, können Sie einfach per Index darauf zugreifen, ohne eine Schleife. Andernfalls müssen Sie das Array iterieren oder zuordnen. – charlietfl

Antwort

2

Mit einer foreach,

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

Es gibt kein '$ val2 [0]'. – Barmar

+2

Es sollte sein $ val2 ['Links'] [0] ['Anchor'] ' – Barmar

+0

@Barmar Yesh du hast Recht, ich habe es bearbeitet. Vielen Dank. –

Verwandte Themen