foreach循环php中同名的和值

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'),

如果我有这样的输出,如何在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('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
是什么吗?我想这正是我需要的