php来自多维数组

时间:2016-06-01 04:02:29

标签: php arrays multidimensional-array sum

我有这样的数组:

Array
(
    [0] => Array
        (
            [impr] => 800000
            [clicks] => 500
            [ctr] => 0.000625
            [cvr] => 0.04
            [cpc] => 0.14024
            [cpm] => 0.08765
            [cpa] => 3.51
        )

    [1] => Array
        (
            [impr] => 889000
            [clicks] => 600
            [ctr] => 0.000625
            [cvr] => 0.08
            [cpc] => 0.34024
            [cpm] => 0.08765
            [cpa] => 4.41
        )

)

我想对该数组求和并得到像这样的结果

Array
(
   [impr] => 1689000
   [clicks] => 1100
   [ctr] => 0.0025
   [cvr] => 0.12
   [cpc] => 0.96096
   [cpm] => 0.1753
   [cpa] => 7.92
)

我尝试使用

  

array_sum()

将我的数组循环到该array_sum,但是我得到了像这样的错误

array_sum()期望参数1为数组,给定整数

甚至尝试使用foreach循环并使用+ =求和值,但结果不是我想要的

结果是800000889000

任何人都可以向我推荐更好的代码来获取我想要的结果

1 个答案:

答案 0 :(得分:0)

首先创建一个包含总和的数组:

$sumArray = array(
    "impr" => 0,
    "clicks" => 0,
    "ctr" => 0,
    "cvr" => 0,
    "cpc" => 0,
    "cpm" => 0,
    "cpa" => 0,
);

然后进行计算:

foreach ($oldArray as $row)
{
    foreach ($rows as $key => $value)
    {
        $sumArray[$key] += $value;
    }
}

然后查看结果,只需:

print_r($sumArray);

注意:我假设原始数组中的密钥没有围绕它们的括号,但是如果实际的密钥字符串确实有括号,那么请使用以下代码用于创建$ sumArray:

$sumArray = array(
    "[impr]" => 0,
    "[clicks]" => 0,
    "[ctr]" => 0,
    "[cvr]" => 0,
    "[cpc]" => 0,
    "[cpm]" => 0,
    "[cpa]" => 0,
);