PHP 统计数据合并
将不同的统计结果整合在一起,如图,根据年级统计出不同成绩段人数(此处只为举例),然后写了一个方法来处理这些统计数组
<?php /**
* 合并统计数据
* @param $key_column string 统计参照字段名
* @param $_list_column array 统计内容字段 统计字段默认值0
* @param mixed ...$_list_arr array 需合并统计内容
* @return array
*/
function statArrMergeHandle($key_column, $_list_column, ...$_list_arr)
{
//整理统计参照字段内容
$_total_key = array();
foreach ($_list_arr as $_arr) $_total_key = array_merge($_total_key, array_column($_arr, $key_column));
$_total_key = array_unique($_total_key);
sort($_total_key); $_return_data = array(); //组合返回数组统计字段及内容,默认值0(根据情况自行设置默认值)
$_modal_key = array();
foreach ($_list_column as $_column) $_modal_key[$_column] = 0; foreach ($_total_key as $key => $item) {
$_arr_key = $_modal_key;
$_arr_key[$key_column] = $item; foreach ($_list_arr as $_arr) {//遍历需合并数据结果
foreach ($_arr as $em) {
if ($item == $em[$key_column]) {
foreach ($_list_column as $_column) { //统计结果大于0,更新相应统计字段数据(判断数组内容是否存在)
if ($em[$_column] > 0) $_arr_key[$_column] = $em[$_column];
}
}
}
}
$_return_data[$key] = $_arr_key;
unset($_arr_key);
} return $_return_data;
} $score_a = array(
array('grade' => '一年级', 'sum_a' => 20),
array('grade' => '二年级', 'sum_a' => 21),
array('grade' => '三年级', 'sum_a' => 15),
array('grade' => '四年级', 'sum_a' => 3),
array('grade' => '五年级', 'sum_a' => 14)
); $score_b = array(
array('grade' => '一年级', 'sum_b' => 21),
array('grade' => '二年级', 'sum_b' => 14),
array('grade' => '四年级', 'sum_b' => 40),
array('grade' => '五年级', 'sum_b' => 12),
array('grade' => '六年级', 'sum_b' => 25),
); $score_c = array(
array('grade' => '一年级', 'sum_c' => 45),
array('grade' => '三年级', 'sum_c' => 24),
array('grade' => '四年级', 'sum_c' => 5),
array('grade' => '六年级', 'sum_c' => 12)
); $score_d = array(
array('grade' => '一年级', 'sum_d' => 12),
array('grade' => '二年级', 'sum_d' => 45),
array('grade' => '六年级', 'sum_d' => 12)
); $_last_data = statArrMergeHandle('grade', array('sum_a', 'sum_b', 'sum_c', 'sum_d'), $score_a, $score_b, $score_c, $score_d);
最终结果
PHP 统计数据合并的更多相关文章
- [Linux-脚本]排序、统计、合并命令
1.排序命令 - sort: sort可以帮我们进行排序,排序顺序按照LANG(语系环境变量)确定.据观察,sort排序以行为单位进行.排序以第一个不相同的字符决定先后顺序(只与第一个不相同的字符相关 ...
- pandas学习(数据分组与分组运算、离散化处理、数据合并)
pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...
- python 数据合并
1. 数据合并 前言 一.横向合并 1. 基本合并语句 2. 键值名不一样的合并 3. “两个数据列名字重复了”的合并 二.纵向堆叠 统计师的Python日记[第6天:数据合并] 前言 根据我的Pyt ...
- MSSQL·将一对多的数据合并为以指定分隔符的数据
阅文时长 | 0.05分钟 字数统计 | 142.4字符 主要内容 | 1.引言&背景 2.Stuff函数语法&模拟场景 3.声明与参考资料 『MSSQL·将一对多的数据合并为以指定分 ...
- sql不重复的查找统计数据(经典)
例表如下: 表名:MYTEST TID COL1 COL2 COL3 1 1 A A2 1 ...
- 使用Notepad++将多行数据合并成一行
1.按Ctrl+F,弹出“替换”的窗口: 2.选择“替换”菜单: 3.“查找目标”内容输入为:\r\n: 4.“替换为”内容为空: 5.“查找模式”选择为正则表达式: 6.设置好之后,点击“全部替换” ...
- (转载)MySQL 统计数据行数 Select Count
(转载)http://www.5idev.com/p-php_mysql_select_count.shtml 统计数据行数 SELECT COUNT() FROM 语法用于从数据表中统计数据行数. ...
- mysql按月,按日分组统计数据
group by DATE_FORMAT(createtime,'%Y-%m');//按月统计数据 group by DATE_FORMAT(createtime,'%Y-%m-%d');//按天统计 ...
- R语言数据合并使用merge数据追加使用rbind和cbind
R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用merge(x, y ,by.x = ,by.y ...
随机推荐
- 洛谷P1456 Monkey King
https://www.luogu.org/problemnew/show/1456 #include<cstdio> #include<iostream> #include& ...
- bzoj千题计划151:bzoj1131: [POI2008]Sta
http://www.lydsy.com/JudgeOnline/problem.php?id=1131 dp[i]=dp[fa[i]]-son[i]+n-son[i] #include<cst ...
- 关于File 文件操作
1.通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据2.通过Cont ...
- MapReduce (hive表SequenceFile的结果做输入)、MultipleOutputs和Reduce端迭代iterable的一些说明
很长时间以来一直写hive,嵌套脚本.偶尔写UDF. 最近用Hive的dynamic partition和多路插入做一些事情,很遗憾的结果是非常不稳定,有时能成功,有时失败.(可能是因为hive版本 ...
- Spring Data JPA原生SQL查询
package com.test.cms.dao.repository;import org.springframework.stereotype.Repository;import javax.pe ...
- C#(.net)水印图片的生成
/* * * 使用说明: * 建议先定义一个WaterImage实例 * 然后利用实例的属性,去匹配需要进行操作的参数 * 然后定义一个WaterImageManage实例 * 利用WaterI ...
- 1.phpcms的安装和卸载文件
一.安装文件 ①languages文件夹 语言包:zh-cn\order.lang.php //样式<?php $LANG['order_new'] = '订单管理'; ?> ②templ ...
- C语言实现线性表
#include <stdio.h> #include <stdlib.h> //提供malloc()原型 /* 线性表需要的方法: 1. List MakeEmpty():初 ...
- 汇编与C语句
---恢复内容开始--- 汇编与C语句 4.1C语句与汇编 学习了汇编语言之后,就需要将常用的C语言代码结构与相应的汇编语言联系起来.这样就可以在分析汇编语言的时候,明白它的意思.C语言中函数过程的调 ...
- sql server中的日期函数
DATEADD 在向指定日期加上一段时间的基础上,返回新的 datetime 值. 语法 DATEADD ( datepart , number, date ) 参数 (1) ...