2012-11-27 4 views
0

저는 Wordpress 피드의 데이터를 Google Analytics API 데이터와 병합하여 각 게시물의 페이지 뷰를 포함한 Wordpress 게시물 정보 테이블을 만들려고합니다. 나는 이것을 달성하기 위해 게시 URL에서 일치시킬 수 있다고 생각하지만이 작업을 수행하는 방법을 잘 모르겠습니다. 두 소스에서 다음과 같이 데이터를 가져 오기 위해 약간의 시간을 보냈습니다.PHP로 두 개의 연관 배열을 결합하십시오.

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

... 난 거의 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 필드가 존재하고 블로그 피드 및 Google 웹 로그 분석 API 데이터를 모두에서 일치하는지 확신합니다. 원하는 결과 배열은 $ blogfeed 배열의 정보에 'pageViews'데이터를 추가하기 만하면됩니다. 그래서

[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, 두 배열 변수 사이의 "+"를 추가하고 운이 없었습니다.

도움이 될 것입니다.

감사합니다.

+0

은'url'에 의해 정렬 된 순서대로'$ analytics'입니까? – durron597

+0

실제로 아니요, 나는 analytics를 pageViews 순으로 높은 순으로 정렬했습니다. 문제가된다면 바꿀 수 있어요? $ 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를 전혀 변경하지 않은 것처럼 보입니다. –