首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将两个数组和重复值之和,然后除以重复值的数目。

将两个数组和重复值之和,然后除以重复值的数目。
EN

Stack Overflow用户
提问于 2017-09-06 20:54:01
回答 1查看 43关注 0票数 0

下面的代码组合了两个数组,并对相同的值进行了求和。

所以指纹会是

代码语言:javascript
复制
Array
(
    [1] => 30
    [2] => 30
    [3] => 40
)

但所期望的结果是

代码语言:javascript
复制
Array
(
    [1] => 15
    [2] => 30
    [3] => 40
)

因为(10+20)/2是我要找的。

如何编辑代码来实现这一点?

代码语言:javascript
复制
$ids = Array(1, 1, 2, 3);
$quants = Array(10, 20, 30, 40);

$a = array_unique($ids);
$a = array_combine($a, array_fill(0, count($a), 0));

foreach($ids as $k=>$v) {
  $a[$v] += $quants[$k];
}

print_r($a);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-06 21:04:06

也许这能帮上忙

代码语言:javascript
复制
    $ids = Array(1, 1, 2, 3);
    $quants = Array(10, 20, 30, 40);

    $a = array_unique($ids);
    $a = array_combine($a, array_fill(0, count($a), 0));

    $x = array_unique($ids);

    $count_map = [];

    foreach ($x as $temp) {
      $count_map[$temp] = 0;
    }

    foreach($ids as $k=>$v) {
      $count_map[$v] = $count_map[$v] + 1;
      $a[$v] += $quants[$k];
      $a[$v] = $a[$v]/$count_map[$v];
    }

    print_r($a);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46084169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档