×

php数组中key相同的相加

php数组中key相同的相加(php中数组的键名可以重复吗)

admin admin 发表于2023-03-11 13:46:07 浏览40 评论0

抢沙发发表评论

本文目录一览:

PHP 同一个数组内 相同的key 值相加

?php

  $arr1 = ['上海' = 20, '北京' = 30, '深圳' = 40,'广州' = 50,'南京' = 60,'深圳' = 70,'北京' = 80,'上海' = 90,'深圳' = 100,'南京' = 110];

  $a=[];

  foreach ($arr1 as $k=$v) $a[$k]+=$v;

  print_r($a);

?

PHP 这样的数组如何将键相同的值相加?

// 给你写段参考代码吧:

$arr1 = ['a' = 20, 'b' = 30, 'c' = 40];

$arr2 = ['a' = 20, 'b' = 30, 'ggg' = 40];

$arr3 = ['a' = 20, 'ddd' = 30, 'c' = 40];

foreach ($arr1 as $key = $val) {

    if (isset($arr2[$key])) {

        $arr1[$key] += $arr2[$key];

    }

    if (isset($arr3[$key])) {

        $arr1[$key] += $arr3[$key];

    }

}

var_dump($arr1);

php判断数组重复,并把重复的数据相加

遍历一次就搞定了

既然你要把单号相同的加起来,就可以认为单号是唯一的,所以单号可以做key

$sourceArr = array();  // 这里就是你原始数据的数组

$newArr = array();  // 这里是相加后处理过的数组,以单号为key

foreach ($sourceArr as $v) {

    if (array_key_exists($v['id'], $newArr)) {

        $newArr[$v['id']]['fund'] += $v['fund'];

    } else {

        $newArr[$v['id']] = $v;

    }

}

大概就是这么个意思,不过交易类型、账务类型你可能还要再处理下。

如果最后想得到一个下标从0开始的,非关联数组,再用array_values()函数处理下就OK了