foreach循环php中同名的和值
如果我有这样的输出,如何在forech中求和相同的值foreach循环php中同名的和值,php,foreach,Php,Foreach,如果我有这样的输出,如何在forech中求和相同的值 Array ( [0] => 200,2, [1] => 200,3, [2] => 300,5, ) 输出应该是 '200' => 5, '300' => 5, 所以组名200和和值之和的结果是2+3 $ga->requestReportData( ga_profile_id, array('date','pagePath'),
Array
(
[0] => 200,2,
[1] => 200,3,
[2] => 300,5,
)
输出应该是
'200' => 5,
'300' => 5,
所以组名200
和和值之和的结果是2+3
$ga->requestReportData(
ga_profile_id,
array('date','pagePath'),
array('pageviews'),
'-pageviews',
'ga:pagePathLevel1==/post/ && ga:pagePathLevel2=~^\/[0-9]+\/$',
$date,
$date,
1);
foreach ($ga->getResults() as $result) {
$pageviews = $result->getPageviews();
$pagepath = $result->getPagePath();
if(is_numeric(get_part_url($pagepath))){
print 'INSERT INTO stats (views,content_id) VALUES ("'.$pageviews.'","'.get_part_url($pagepath).'")';
}
}
get\u part\u url
只是提取url的一部分的函数。创建一个新数组并对值求和
$newArray=array();
Foreach( $myarray as $key=>$value)
{
If(!isset($newArray[$key])
{
$newArray[$key]=$value;
}
Else
{
$newArray+=$value;
}
您可以创建一个新数组,将所有结果分组到其中。注意:您可能会收到有关偏移的通知,只需首先检查键
isset()
停止此操作或使用error\u报告(E\u error)代码>不显示警告
$groupedResults = array();
foreach ($ga->getResults() as $result) {
$pageviews = $result->getPageviews();
$pagepath = get_part_url($result->getPagePath());
if(is_numeric($pagepath)) $groupedResults[$pagepath] += $pageviews;
}
然后,可以循环执行这些操作并运行DB查询
foreach ($groupedResults as $k => $v) {
print 'INSERT INTO stats (views,content_id) VALUES ("'.$v.'","'.$k.'")';
}
请参阅一个包含示例数据的问题。是什么生成了此输出(您在此处显示的代码中没有任何内容)编辑后的问题我只能重复我的第一条评论。。。。并添加:什么是$ga
?方法requestReportData()
在做什么?这是你没有提到的框架吗?是的,这是一个谷歌分析api$arr=['200'=>2,'500'=>5,'200'=>3]代码>将不起作用,一个数组中不能有两个相同的索引点。。这将输出为数组([200]=>3[500]=>5)
。。。请向我们提供一个导出版本的real datatrue,但是:您知道问题中的$myarray
是什么吗?我想这正是我需要的