我有一个多维数组(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";
}
?>
总的来说,我想要实现的是基于网站页面和相应分析结果的数据表。
答案 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'];
}