我尝试使用foreach循环在PHP上调用Google AnalyticsAPI,如下所示:
foreach($getResults as $row) {
switch($row[0]) {
case 'New Visitor':
$data[] = array(
'new' => $row[2],
'date' => date("M d", strtotime($row[1]))
);
break;
case 'Returning Visitor':
$data[] = array(
'return' => $row[2],
'date' => date("M d", strtotime($row[1]))
);
break;
}}
我有这样的结果数组:
Array (
[0] => Array
(
[new] => 13
[date] => Dec 17
)
[1] => Array
(
[return] => 8
[date] => Dec 17
)
[2] => Array
(
[new] => 11
[date] => Dec 16
)
[3] => Array
(
[return] => 3
[date] => Dec 16
) )
但我想将两个上面的每个数组合并在一起,并给出如下输出:
Array (
[0] => Array
(
[new] => 13
[return] => 8
[total] => 21
[date] => Dec 17
)
[2] => Array
(
[new] => 11
[return] => 3
[total] => 14
[date] => Dec 16
))
我已经尝试使用array_merge()并使用+运算符进行组合,但它没有像我所想的那样给我结果,任何人都可以帮助我?
答案 0 :(得分:1)
如果您想将日期用作数组键,则可以。 然后为总数'密钥,您可以先检查是否已经存在'总计'键。如果没有,请添加第一个条目。如果已有,则添加到其中。
例如,如果$getResults
看起来像这样:
$getResults = array(
array(
'New Visitor',
'12/17/2015',
13
),
array(
'Returning Visitor',
'12/17/2015',
8
),
array(
'New Visitor',
'12/16/2015',
11
),
array(
'Returning Visitor',
'12/16/2015',
3
)
);
也许这样的设置可以帮到你:
$data = array();
foreach ($getResults as $row) {
$date = date("M d", strtotime($row[1]));
isset($data[$date]['total']) ? $data[$date]['total'] += $row[2] : $data[$date]['total'] = $row[2];
$data[$date]['date'] = $date;
switch ($row[0]) {
case 'New Visitor':
$data[$date]['new'] = $row[2];
break;
case 'Returning Visitor':
$data[$date]['return'] = $row[2];
break;
}
}
print_r($data);
// If you don't want the 'date' as a key, you can use:
// $data = array_values($data);
将导致:
Array
(
[Dec 17] => Array
(
[total] => 21
[date] => Dec 17
[new] => 13
[return] => 8
)
[Dec 16] => Array
(
[total] => 14
[date] => Dec 16
[new] => 11
[return] => 3
)
)
答案 1 :(得分:0)
您可以使用公用密钥名称:
$data['YOUR_COMMON_KEY'] = array(
'new' => $row[2],
'date' => 'Dec 17'
);
您可以像密钥一样使用date
值。迭代$getResults
后,你应该得到一个多维数组,但没有数字键。因此,如果您想获得数字数组,只需使用array_values()
。