2012-07-19 103 views
0

可能重复:
PHP Array_Sum on multi dimensional array多维数组到一维数组由相同的键

我有两个阵列时二维如下。

array(
    (int) 0 => array(
     'Chrome' => '10', 
     'Firefox' => '3', 
     'Internet Explorer' => '1', 
     'Safari' => '1', 
     'Mobile' => (int) 0, 
     'Others' => (int) 0 
    ), 
    (int) 1 => array(
     'Chrome' => '5', 
     'Firefox' => '2', 
     'Safari' => '2', 
     'Internet Explorer' => '1', 
     'Opera' => '1', 
     'Mobile' => (int) 0, 
     'Others' => (int) 0 
    ) 
) 

我想为相同的键添加值,并按如下所示将它放入单个数组中。

array(
    'Chrome' => '15', 
    'Firefox' => '5', 
    'Internet Explorer' => '2', 
    'Safari' => '3', 
    'Opera' => '1', 
    'Mobile' => '0' 
    'Others' => '0' 
) 

请给我这个解决方案。

+0

可能重复(http://stackoverflow.com/q/1404422/) – outis 2012-07-19 06:57:33

+2

[你尝试过什么?](http://whathaveyoutried.com)。虽然“请给我解决方案”是礼貌的,但这是一种糟糕的懒惰。如果你想成为一名出色的开发人员,那么你需要学习如何解决问题,而不是依赖于其他方面。而不是要求最后一步,说明你正在进行的步骤,并寻求帮助进入下一步。这也不是什么, SO是针对有关特定代码问题的问题。如果您需要设计方面的帮助,请尝试[程序员.SE](http://programmers.stackexchange.com/)。 – outis 2012-07-19 07:01:39

回答

3

迭代子数组并接管键和值对。如果它们存在,则将该值(整数算术和操作)添加到现有值。

当您完成迭代子数组时,结果已准备就绪。的[PHP Array_Sum多维数组]

$array = array(); 
foreach ($subArrays as $subArray) 
{ 
    foreach ($subArray as $key => $value) 
    { 
     isset($array[$key]) || $array[$key] = 0; 
     $array[$key] += (int) $value; 
    } 
} 

// ready, but make all strings: 
$array = array_map('strval', $array);