dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10158|回复: 264

PHP 统计数据合并

  [复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2018-11-14 00:02:47 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    将不同的统计结果整合在一起,如图,根据年级统计出不同成绩段人数(此处只为举例),然后写了一个方法来处理这些统计数组
    1386001-20180910110755932-1317376908.png
    [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);

    最终结果
    1386001-20180910113418423-1643949588.png



    回复

    使用道具 举报

    该用户从未签到

    24

    主题

    7885

    帖子

    1019

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1019

    发表于 2018-11-14 05:33:22 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    7836

    帖子

    924

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    924

    发表于 2018-11-14 07:58:33 | 显示全部楼层
    好好 学习了 确实不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21

    主题

    7903

    帖子

    1035

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1035

    发表于 2018-11-14 09:54:32 | 显示全部楼层
    路过,学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    7843

    帖子

    1025

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1025

    发表于 2018-11-14 09:55:14 | 显示全部楼层
    正需要,支持楼主大人了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22

    主题

    7846

    帖子

    992

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    992

    发表于 2018-11-14 11:31:49 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29

    主题

    7959

    帖子

    979

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    979

    发表于 2018-11-14 14:39:58 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    43

    主题

    7840

    帖子

    956

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    956

    发表于 2018-11-14 17:16:12 | 显示全部楼层
    看帖回帖是美德!:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    7892

    帖子

    1017

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1017

    发表于 2018-11-14 17:17:17 | 显示全部楼层
    正需要,支持楼主大人了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33

    主题

    7990

    帖子

    1018

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1018

    发表于 2018-11-14 17:50:46 | 显示全部楼层
    看帖回帖是美德!:lol
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 23:43 , Processed in 0.089153 second(s), 41 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表