2013-11-27 185 views
0

我有一個多維數組(谷歌分析數據)的數據,如下面的:搜索和檢索多維數組

Array 
(
[0] => gapiReportEntry Object 
    (
     [metrics:gapiReportEntry:private] => Array 
      (
       [uniquePageviews] => 1 
       [visitors] => 1 
       [pageviews] => 1 
      ) 

     [dimensions:gapiReportEntry:private] => Array 
      (
       [pagePath] => /107483 
      ) 

    ) 

[1] => gapiReportEntry Object 
    (
     [metrics:gapiReportEntry:private] => Array 
      (
       [uniquePageviews] => 1 
       [visitors] => 1 
       [pageviews] => 1 
      ) 

     [dimensions:gapiReportEntry:private] => Array 
      (
       [pagePath] => /754985 
      ) 

    ) 

我所試圖做的是搜索數組,看是否有匹配根據我的數據庫中的一些條目在[pagePath]元素中找到。如果找到匹配項,我想打印該數組中的[訪問者]。如果沒有找到匹配我想返回一個數字爲0

這是不正確的,但我希望說明了什麼我想實現:

<?php 
if(in_array($value['Identifier'],$metrics['pagePath')) { 
$metrics['pagePath') 
}else{ 
echo "0"; 
} 
?> 

總體來說,我想實現是基於網站上的網頁和相應的分析結果的數據表。

+1

它的對象 –

回答

1

您可能會在array_filter()函數中找到幫助。這將允許您根據特定條件篩選對象數組。一個例子可能是這樣的:

$page_path = '/12345'; // the page path you are interested in 
$metrics = ...; // your array of objects 

$filtered_array = array_filter($metrics, function ($item) use $page_path { 
    return ($item['dimensions:gapiReportEntry:private']['pagePath'] == $page_path); 
} 

您現在有隻在$filtered_array匹配頁面路徑的對象。

可以遍歷數組,然後拉出所有訪問者的信息是這樣的:

$visitors = array(); 
foreach($filtered_array as $item) { 
    $visitors[] = $item['metrics:gapiReportEntry:private']['visitors']; 
} 
+0

感謝邁克的幫助的數組。我已經通過使用in_array函數解決了這個問題。我已經創建了兩個數組,一個來自數據庫,另一個來自分析頁面路徑,然後我編寫了條件來檢查天氣中數據庫中的數組元素是否存在於分析頁面的數組中。如果不是,則打印0,否則比較陣列。 – Dharmesh