doute3621 2019-05-20 10:54
浏览 50
已采纳

PHP多维数组求和并使其唯一[重复]

This question already has an answer here:

Following is my array. I need to add its Sum field according to each emp_firstname. Some has only one time coming, some coming two times. how can we sum the field and make the array unique?

Array
(
    [0] => Array
        (
            [emp_firstname] => Alistair
            [non_pm] => AMZ
            [sum] => 2
        )


    [1] => Array
        (
            [emp_firstname] => Shakkeer
            [non_pm] => SHK
            [sum] => 3
        )

    [2] => Array
        (
            [emp_firstname] => Waqas
            [non_pm] => WAS
            [sum] => 12
        )

    [3] => Array
        (
            [emp_firstname] => Zain
            [non_pm] => ZAI
            [sum] => 9
        )


    [4] => Array
        (
            [emp_firstname] => Shakkeer
            [gud_pmeditor] => SHK
            [sum] => 4
        )

    [5] => Array
        (
            [emp_firstname] => Zain
            [gud_pmeditor] => ZAI
            [sum] => 2
        )

)
</div>
  • 写回答

1条回答 默认 最新

  • dreamworld2007 2019-05-20 11:06
    关注

    You can get the desired result using this approach

    $res=[];
    foreach($arr as $val){
      if(array_key_exists($val['emp_firstname'], $res))
        $res[$val['emp_firstname']]['sum'] = ($res[$val['emp_firstname']]['sum'] + $val['sum']);
      else
        $res[$val['emp_firstname']] = $val;
    }
    

    Live Demo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 关于PROCEDURE和FUNCTION的问题
    • ¥100 webapi的部署(标签-服务器)
    • ¥20 怎么加快手机软件内部计时的时间(关键词-日期时间)
    • ¥15 C语言除0问题的检测方法
    • ¥15 为什么四分管的内径有的是16mm有的15mm,四分不应该是12.7mm吗
    • ¥15 macos13下 ios交叉编译的问题
    • ¥15 bgz压缩文件怎么打开
    • ¥15 封装dll(引入了pcl的点云设计库)
    • ¥30 关于#开发语言#的问题:我需要在抄板的基础上再抄板抄程序,根据RDA8851CM基础上开发
    • ¥15 oracle 多个括号,怎么删除指定的括号及里面的内容?