zoukankan      html  css  js  c++  java
  • 一个二维数组根据某个字段相加然后去重的操作

     1 [0] => array(4) {
     2     ["id"] => int(1)
     3     ["bid"] => int(1)
     4     ["sales"] => string(2) "15"
     5     ["price"] => string(4) "5975"
     6   }
     7   [1] => array(4) {
     8     ["id"] => int(2)
     9     ["bid"] => int(1)
    10     ["sales"] => string(1) "2"
    11     ["price"] => string(3) "659"
    12   }
    13   [2] => array(2) {
    14     ["id"] => int(3)
    15     ["bid"] => int(1)
    16   }
    17   [3] => array(2) {
    18     ["id"] => int(4)
    19     ["bid"] => int(1)
    20   }
    21   [4] => array(4) {
    22     ["id"] => int(5)
    23     ["bid"] => int(1)
    24     ["sales"] => string(1) "1"
    25     ["price"] => string(3) "256"
    26   }

    我要根据bid把sales累加和price累加,人后去掉重复的bid只保留一个,方法:

     1 $new = array();
     2             foreach ($store_i1 as $k=>$v){
     3                 if(isset($new[$v['bid']])){
     4                     $new[$v['bid']]['sales'] += $v['sales'];
     5                     $new[$v['bid']]['price'] += $v['price'];
     6                 }else{
     7                     $new[$v['bid']]['sales'] = $v['sales'];
     8                     $new[$v['bid']]['price'] = $v['price'];
     9                 }
    10 
    11             }

    输出结果:

     1  [1] => array(2) {
     2     ["sales"] => int(18)
     3     ["price"] => int(6890)
     4   }
     5   [3] => array(2) {
     6     ["sales"] => int(0)
     7     ["price"] => int(0)
     8   }
     9   [2] => array(2) {
    10     ["sales"] => string(3) "0"
    11     ["price"] => string(5) "0"
    12   }
    人生得意须尽欢,莫使金樽空对月.
  • 相关阅读:
    Ajax 学习笔记
    StringBulider简单用法
    asp.net 发送邮件
    log4net日志组件
    Web.Config文件详解
    关闭discuzX3.2注册页面的注册邮箱验证
    Oracle 序列(sequence)的创建、修改及删除
    MySQL 和 Oracle 主键自增长
    EL(表达式)语言的几种运算符
    SQL:select case when 的用法
  • 原文地址:https://www.cnblogs.com/luojie-/p/8780477.html
Copyright © 2011-2022 走看看