如果某些值相同,如何求和数组的值?

时间:2016-01-21 08:43:31

标签: php arrays

我有以下数组

Array (
    [0] => 1995,17500
    [1] => 2052,17500
    [2] => 2052,17500
    [3] => 2236,30000
    [4] => 2235,15000
    [5] => 2235,40000
);

我用逗号爆炸了值。

foreach($array as $key=>$value) {

      $newar = explode(',', $value);
}

所以我有类似的第一个价值,即$ newar [" 0"]。例如2235和2052.我想得到第二个值的总和,即$ newar [" 1"]。

如何使用PHP实现以下结果。

Array (
   [0] => 1995, 17500
   [1] => 2052, 35000
   [2] => 2036, 30000
   [3] => 2235, 55000
)

1 个答案:

答案 0 :(得分:1)

您可以创建新的数组键/索引,并使用array_key_exists检查密钥是否已存在。如果是,则将值相加,如果不创建密钥。这不是你想要的确切结果,但它更整洁。

$newar = []; //New Array

foreach($array as $value) {
     $explArr = explode(',', $value);

     if(array_key_exists($explArr[0], $newar)){ //Check if the key already exists
        $newar[$explArr[0]] += $explArr[1]; //Sum value to existing key
     } else {
        $newar[$explArr[0]] = $explArr[1]; //Create key
     }
}

您的结果数组将如下所示:

Array (
   [1995] => 17500
   [2052] => 35000
   [2036] => 30000
   [2235] => 55000
)