0

我有 3 个从搜索引擎以漂亮的 html 格式打印出来的数组,这里是用于打印的 foreach 循环

必应 API

foreach($jsonObj->d->results as $value){
            echo  "<a href=\"{$value->Url}\">{$value->Title}</a><p>{$value->Description}</p>". "<br>";

        }

Blekko API

foreach($js->RESULT as $item){
        echo  "<a href=\"{$item->url}\">{$item->url_title}</a><p>{$item->snippet}</p>". "<br>";

    }

谷歌 API

foreach($all_items as $item){
        echo  "<a href=\"{$item->link}\">{$item->title}</a><p>{$item->snippet}</p>". "<br>";

    }

然后我创建了一个 comnined 数组,如下所示

$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)”但我不确定是什么,谁能帮忙

4

1 回答 1

0

这是因为您不再拥有对象。

改变这个:

foreach($combined as $value){
    echo "<a href=\"{$value->url}\">{$value->title}</a><p>{$value->snippet}</p>". "<br>";
}

对此:

foreach($combined as $url => $value){
    echo "<a href=\"{$url}\">{$value['title']}</a><p>{$value['snippet']}</p>". "<br>";
}
于 2013-07-31T13:56:52.000 回答