从多维数组中搜索和检索数据

时间:2013-11-27 17:32:52

标签: php api google-analytics

我有一个多维数组(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]元素中找到了基于我数据库中某些条目的匹配项。如果找到匹配项,我想从该数组中打印[visitor]。如果未找到匹配项,我想返回0的数字。

这是不正确的,但希望说明我想要实现的目标:

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

总的来说,我想要实现的是基于网站页面和相应分析结果的数据表。

1 个答案:

答案 0 :(得分: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'];
}