2016-04-25 15 views
1

PHPからJSONデータを表示するためにPHPを使用しようとしています。私はすべての結果を返すためにforeachを使う必要がありますが、それらの中にネストされた配列は配列です。アレイは「ハイライト」であり、時には「説明」と時には「コンテンツ」と時には両方を持つことがあります。私はforeach内でforeachをやる必要がありますか、それらの行に沿ったものですが、私がしようとするものはすべて "Array"を返します。PHP JSON foreach配列の問題

ここで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

ここに私の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>"; 
} 

作業バージョンは、プログラムされ、より多くのフィールドがありますが、私はカットこれらのコードを短くシンプルに保ち、foreightの "hightlights"フィールド以外に他のすべてがあることを示します。 JSONの返品では、foreach内のすべてを保持する必要があるので、その内部に配列を表示する方法はありますか?

あなたが貢献できる場合でも、これを読む時間をとっていただきありがとうございます。ありがとうございます。

+0

多分それは私が間違ってやっている何か何が推奨されていましたが、まだ運、しようとしました。すべての情報は素晴らしい情報源であり、私はそれを投稿していただきありがとうございます! –

答えて

1

「説明」は1つの要素を持つ配列なので、これを使用できます。

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

場合によっては「説明」と「コンテンツ」があることがあります。 issetを使用してどちらが1つであるかを確認します。

// 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]; 
} 

これが役立ちます。