2013-07-30 56 views
0

下面的代碼是一個關聯數組,它需要的信息形成一個搜索引擎,如URL,標題和摘要,錯誤,當我試圖把一個數組出到HTML

$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 

任何人都可以看到我要去哪裏錯了

+1

不應該你對輸出的foreach是在'$ googleArray'而不是在第一步中構建的'$ all_items' – Orangepill

+3

您需要學習如何[讀取和調試](http://stackoverflow.com/questions/12769982/reference-what-does-this-錯誤意思在PHP中)錯誤消息。解決問題所需的一切都在錯誤信息中。 $ googleArray不包含鍵['title'] ['link'] etc,print_r或者var_dump它並且看到它包含你認爲它的作用。 – Anigel

+0

停止你不瞭解的複製/粘貼代碼。錯誤說明了這一切,如果你不明白我建議回到基礎知識,並檢查笏未定義的手段。 – JonathanRomer

回答

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在這種情況下,在您解決第一個問題之後是已更正的密鑰。 ;)

+0

我已經做到了,我明白你的意思,謝謝,現在我得到了未分配的索引和未定義的變量,我做了一個var轉儲和代碼片段,標題和$ googleArray [str_replace($ find,'',($ item - > {'link'}))]在數組中,我不知道是否需要更改foreach循環,我已經改變它輸出$ googleArray – user2634446

+0

但我敢打賭,你學到了很多東西。 :) – GolezTrol

+0

哈耶,我想這是關鍵,我承受着壓力,因爲它爲大學項目,感謝您的幫助 – user2634446

0

很簡單有這到底

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

    } 

,而且只花了我整整一天來弄明白,笑

相關問題