2012-11-27 140 views
0

我試圖從谷歌Analytics(分析)API數據的WordPress的飼料合併數據創建的WordPress的表發佈的信息,包括每個帖子的頁面瀏覽量。我想我可以在帖子網址上匹配來完成此操作,但我不知道如何執行此操作。我花了一些時間來獲得來自兩個源的數據看起來像這樣:連接兩個關聯數組與PHP

的print_r($分析);回報:

Array ( 
[0] => Array ( 
    [url] => blog-post-url-121 
    [pageViews] => 34326) 
[1] => Array ( 
    [url] => blog-post-url-245 
    [pageViews] => 14642) 
[2] => Array ( 
    [url] => blog-post-url-782 
    [pageViews] => 13201) 
) 

...我有近2000個實例

的print_r($ blogfeed);回報

Array ( 
[0] => Array ( 
    [url] => blog-post-url-457 
    [PostID] => 87249 
    [Date] => 2012-11-26 15:58:45 
    [Author] => John-Smith 
    [Title] => Blog Post Title #457 
    [Categories] => Dining, News) 
[1] => Array ( 
    [url] => blog-post-url-245 
    [PostID] => 88148 
    [Date] => 2012-11-26 15:00:20 
    [Author] => Mary-Jones 
    [Title] => Blog Post Title #245 
    [Categories] => Events, Nightlife) 
) 

我敢肯定的是,「鑰匙」 URL字段存在,並且在博客飼料和谷歌Analytics(分析)API的數據都相匹配。所需的結果數組只需將'pageViews'數據添加到$ blogfeed數組中的信息即可。所以

[1] => Array ( 
[url] => blog-post-url-245 
[PostID] => 88148 
[Date] => 2012-11-26 15:00:20 
[Author] => Mary-Jones 
[Title] => Blog Post Title #245 
[Categories] => Events, Nightlife 
[pageViews] => 14642) 

我試過array_merge的不同變化,array_merge_recursive,並增加了「+」兩個數組變量之間並沒有任何運氣。

任何幫助將大大appreaciated。

謝謝!

+0

是'由'url'有序$ analytics'? – durron597

+0

其實不,我有$ pagetics從最高到最低排序$分析。如果重要,我可以改變它? $ blogfeed按發佈日期排序。 –

+0

那麼,如果兩者都通過'url'排序,你可以用一個循環而不是2來完成。請參閱下面的2循環解決方案。 – durron597

回答

0

這可以O(n)做,我想......

foreach ($analytics as $viewElement) { 
    $viewAssoc[$viewElement['url']] = $viewElement['pageViews']; 
} 
foreach ($blogfeed as $index => $blogElement) { 
    $blogElement['pageViews'] = $viewAssoc[$blogElement['url']]; 
    $newBlogfeed[$index] = $blogElement; 
} 

我沒有一個PHP的環境設置進行測試,但這應該工作。我不認爲有「單一指揮」解決方案。

+0

如果我在這裏密集,我真的很抱歉,但是我從上面print_r看到新的合併數組? –

+0

打印'$ blogfeed'。假設它可行,請不要忘記接受;) – durron597

+0

我不認爲它正在工作。看起來這並沒有改變$ blogfeed。 –