2013-11-27 3 views
0

у меня есть многомерный массив (данные Google Analytics), как показано ниже:поиска и извлечения данных из многомерного массива

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

Спасибо Mike за помощь. Я решил проблему, используя функцию in_array. Я создал два массива: один из базы данных и один из аналитического пути страницы, затем я написал условие проверки погоды, что элемент массива из базы данных существует в массиве с аналитической страницы страницы. Если это не так, тогда print 0 else сравните массив. – Dharmesh

Смежные вопросы