二维数组求和,,,针对键名数量不等的情况
来源:互联网 发布:有关大数据的论文题目 编辑:程序博客网 时间:2024/05/22 22:09
求和数组:$data = array( '0' => array ( 'id' => 1518, 'date' => 1495728000, 'type' => 61, 'content' => '{"2":2,"3":4,"4":6,"5":8}' ), '1' => array ( 'id' => 1519, 'date' => 1495641600, 'type' => 62, 'content' => '{"1":3,"3":5,"2":5,"6":6}' ), '2' => array ( 'id' => 1519, 'date' => 1495555200, 'type' => 63, 'content' => '{"7":219,"8":112,"9":268}' ), '3' => array ( 'id' => 1519, 'date' => 1495468800, 'type' => 64, 'content' => '{"14":219,"16":112,"23":268,"18":268}' ) );/**求和函数*$n 求和天数*$data 求和数据*/function sum($n,$data){ $sum = $sum_tmp = array(); foreach ($data as $key => $val) { // print_r($val);exit; $content = json_decode($val['content'],true); // print_r($content);exit; if ((($key + 1) % $n) != 0) { //非$n的倍数 一直累加 foreach($content as $k=>$v){ if(!isset($sum_tmp[$k])){ $sum_tmp[$k] = $v; }else{ $sum_tmp[$k] += $v; } } if (($key + 1) == count($data)) { $sum[$val['date']]['date'] = date('Y-m-d',($val['date']+($n-1)*86400)).'---'.date('Y-m-d',$val['date']); foreach($sum_tmp as $k=>$v){ $sum[$val['date']][$k] = $v; } } } elseif ((($key + 1) % $n) == 0) { //$n的倍数 缝$n求和 foreach($content as $k=>$v){ if(!isset($sum_tmp[$k])){ $sum_tmp[$k] = $v; }else{ $sum_tmp[$k] += $v; } } $sum[$val['date']]['date'] = date('Y-m-d',($val['date']+($n-1)*86400)).'--'.date('Y-m-d',$val['date']); foreach($sum_tmp as $k=>$v){ $sum[$val['date']][$k] = $v; } unset($sum_tmp); } } return $sum;}print_r(sum(2,$data)); //注红色部分为解决求和数组之间单元数量不等的问题打印结果为:Array( [1495641600] => Array ( [date] => 2017-05-26--2017-05-25 [2] => 7 [3] => 9 [4] => 6 [5] => 8 [1] => 3 [6] => 6 ) [1495468800] => Array ( [date] => 2017-05-24--2017-05-23 [7] => 219 [8] => 112 [9] => 268 [14] => 219 [16] => 112 [23] => 268 [18] => 268 ))
阅读全文
0 0
- 二维数组求和,,,针对键名数量不等的情况
- 不等长的二维数组
- php二维数组以某个字段做一维数组的键名
- 二维数组按照指定的键名的值进行排序
- 【php】二维数组按指定的键名排序
- 不等规模二维数组相乘
- js 二维数组 字符串键名 初始化
- 对二维数组的某一字段求和
- 二维数组最大子矩阵的求和
- 二维树状数组的求和问题
- 【代码】php 用键名分组相加的二维数组实例函数
- php二维数组用键名分组相加实例函数
- java ArrayList 套数组,二维不等长数组
- php二维数组相同id的数量相加
- 二维数组遍历及求和
- Java遍历二维数组,求和
- 中英文不等高情况的解决办法
- 二维数组的行列求和以及最大差值
- Maven入门(含实例教程)
- Spring Cloud学习 | 第二章 | 服务提供者
- java-设计模式-单例模式(Singleton)
- Hibernate与 MyBatis的比较
- 集成学习AdaBoost算法原理及python实现
- 二维数组求和,,,针对键名数量不等的情况
- 目标跟踪算法----KCF进阶(基于KCF改进的算法总结)
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
- 5.Android-Manifest.xml文件注册活动、声明主活动
- UltraEdit v24破解
- Android Audio 输出 OpenSL
- 浅谈为什么要义无反顾的做游戏
- Timer,单例redis,HttpClient,反射 手记
- 图邻接表 和 括扑排序