0

以下代码是一个关联数组,它从搜索引擎获取信息,例如 url、title 和 snippet,

$googleArray = array(); 

    $find = array ('http://','https://','www.');                    
    $score = 100;                  



foreach ($all_items as $item)  // 
{   
    $googleArray[str_replace ($find, '', ($item->{'link'}))] = array(         
    'title'=> $item->{'title'},
    'snippet' => $item->{'snippet'},
    'score' => $score--
     );

}

我知道想在网页上用 html 打印出来,我试过这段代码。

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

} 

这些是我得到的错误

Notice: Undefined index: http://www.time.com/ 

Notice: Undefined index: title 

Notice: Undefined index: link 

Notice: Undefined index: snippet 

谁能看到我哪里出错了

4

2 回答 2

1

要从数组中读取,您使用link项目的属性作为键:

echo "<href={$googleArray[($item->{'link'})]}>

但是在代码的前面部分,您并没有使用那个确切的链接来写入值。你写使用

$googleArray[str_replace ($find, '', ($item->{'link'}))];

因此,您使用的不是$item->{'link'}该链接,而是该链接的修改版本(带有 str_replace)。

所以这是一个问题。

另一个问题是titlesnippet是数组中的键,它是 中键的值$googleArray,因此要获取这些值,您应该阅读$googleArray[$key]['snippet']而不是$googleArray['snippet']. $key在这种情况下,在您解决第一个问题后,它是更正后的密钥。;)

于 2013-07-30T14:22:13.227 回答
0

到头来就这么简单

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

    }

我只花了一整天的时间就弄明白了,哈哈

于 2013-07-31T12:35:24.623 回答