検索エンジンから適切な html 形式で出力される 3 つの配列があります。出力するための foreach ループは次のとおりです。
ビング API
foreach($jsonObj->d->results as $value){
echo "<a href=\"{$value->Url}\">{$value->Title}</a><p>{$value->Description}</p>". "<br>";
}
ブレッコ API
foreach($js->RESULT as $item){
echo "<a href=\"{$item->url}\">{$item->url_title}</a><p>{$item->snippet}</p>". "<br>";
}
Google API
foreach($all_items as $item){
echo "<a href=\"{$item->link}\">{$item->title}</a><p>{$item->snippet}</p>". "<br>";
}
次に、以下のような共通配列を作成しました
$combined = array();
foreach($bingArray as $key=>$value){
if(isset($combined[$key]))
$combined[$key]["score"] += $value['score'];
else
$combined[$key] = array("score"=>$value['score'],"title"=>$value["title"], "snippet"=>$value ["snippet"]);
}
print_r($combined) を実行すると、次の出力が得られます
Array ( [example.com] => Array ( [score] => 51 [title] => example title[snippet] => Blah baly... )[example2.com] => Array ( [score] => 45 [title] => example title2[snippet] => Blah baly2... ) ....)
これは問題なく、3 つの API 配列すべてと同じ形式です。3 つの API のように、組み合わせた配列を html で出力しようとしています。これが私が試したコードです。
foreach($combined as $value){
echo "<a href=\"{$value->url}\">{$value->title}</a><p>{$value->snippet}</p>". "<br>";
}
しかし、実行すると、「オブジェクト以外のプロパティを取得しようとしています」というエラーが表示されます。ここで「foreach($combined as $value)」の何かを変更する必要があると思われますが、何がわからないのでしょうか。