2016-04-25 23 views
1

Ich versuche mit PHP einige JSON-Daten von einer API anzuzeigen. Ich muss foreach verwenden, um alle meine Ergebnisse zurückzugeben, aber in ihnen verschachtelt ist ein Array. Das Array ist "Highlights", die manchmal "Beschreibung" und manchmal "Inhalt" und manchmal beides hat. Ich muss eine Foreach innerhalb einer Foreach oder etwas in dieser Richtung tun, aber alles, was ich versuche, gibt einfach "Array" zurück.PHP JSON foreach Array Problem

Hier ist die JSON ...

https://api.data.gov/gsa/fbopen/v0/opps?q=lte+test+bed+system&data_source=FBO&limit=100&show_closed=true&api_key=CTrs3pcYimTdR4WKn50aI1GcUxyL9M4s1fyBbSer

Hier ist meine PHP ...

$json_returned = file_get_contents("JSON_URL"); 
$decoded_results = json_decode($json_returned, true); 

echo "Number Found:".$decoded_results['numFound']."</br> "; 
echo "Start:".$decoded_results['start']."</br>"; 
echo "Max Score:".$decoded_results['maxScore']."</br>"; 

foreach($decoded_results['docs'] as $results){ 
echo "Parent Link T:".$results['parent_link_t']."</br>"; 
echo "Description:".$results['highlights']['description']."</br>"; 
} 

Offensichtlich ist die Arbeitsversion Ich verwende viel mehr Felder in programmiert hat, aber ich schneide Sie wollen diesen Code kurz und einfach halten und zeigen, wie ich alles andere als das "Hightlights" -Feld in einem foreach habe. Die JSON-Returns erfordern, dass ich alles in diesem foreach halte, also wie ich das Array darin anzeigen soll?

Danke für jede Hilfe und danke, dass Sie sich die Zeit genommen haben, dies zu lesen, auch wenn Sie dazu beitragen können.

+0

versucht, was es wurde empfohlen, aber noch kein Glück, vielleicht ist es etwas, was ich falsch mache. Trotzdem ist das eine großartige Informationsquelle und ich freue mich, dass Sie es gepostet haben! –

Antwort

1

Die 'Beschreibung' ist Array mit einem Element, so dass Sie dies verwenden können.

echo 'Description:' . $results['highlights']['description'][0]; 

Wenn es manchmal "Beschreibung" und manchmal "Inhalt" hat. Verwenden Sie isset, um zu prüfen, welcher es ist, oder sogar wenn es beide gibt und entsprechend drucken.

// for description 
if(isset($results['highlights']['description'])) { 
    echo 'Description:' . $results['highlights']['description'][0]; 
} 
// for content 
if(isset($results['highlights']['content'])) { 
    echo 'Content:' . $results['highlights']['content'][0]; 
} 

Hoffe, das hilft.