使用 PHP 连接两个关联数组[重复]

问题描述 投票:0回答:1

我正在尝试将 Wordpress feed 中的数据与 Google Analytics API 数据合并,以创建包含每个帖子的页面浏览量的 Wordpress 帖子信息表。我想我可以匹配帖子网址来完成此操作,但我不确定如何执行此操作。我花了一些时间从两个来源获取数据,如下所示:

print_r($analytics);返回:

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 )
 )  

...我有近 2,000 个实例

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 字段存在并且在博客提要和 Google 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 的不同变体,并在两个数组变量之间添加“+”,但没有任何运气。

任何帮助将不胜感激。

谢谢!

php arrays array-merge
1个回答
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 环境,但这应该可以工作。我不认为有“一个命令”的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.