2012-11-27 202 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。 –