在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
将不同的统计结果整合在一起,如图,根据年级统计出不同成绩段人数(此处只为举例),然后写了一个方法来处理这些统计数组 1 <?php 2 3 /** 4 * 合并统计数据 5 * @param $key_column string 统计参照字段名 6 * @param $_list_column array 统计内容字段 统计字段默认值0 7 * @param mixed ...$_list_arr array 需合并统计内容 8 * @return array 9 */ 10 function statArrMergeHandle($key_column, $_list_column, ...$_list_arr) 11 { 12 //整理统计参照字段内容 13 $_total_key = array(); 14 foreach ($_list_arr as $_arr) $_total_key = array_merge($_total_key, array_column($_arr, $key_column)); 15 $_total_key = array_unique($_total_key); 16 sort($_total_key); 17 18 19 $_return_data = array(); 20 21 //组合返回数组统计字段及内容,默认值0(根据情况自行设置默认值) 22 $_modal_key = array(); 23 foreach ($_list_column as $_column) $_modal_key[$_column] = 0; 24 25 foreach ($_total_key as $key => $item) { 26 $_arr_key = $_modal_key; 27 $_arr_key[$key_column] = $item; 28 29 foreach ($_list_arr as $_arr) {//遍历需合并数据结果 30 foreach ($_arr as $em) { 31 if ($item == $em[$key_column]) { 32 foreach ($_list_column as $_column) { 33 34 //统计结果大于0,更新相应统计字段数据(判断数组内容是否存在) 35 if ($em[$_column] > 0) $_arr_key[$_column] = $em[$_column]; 36 } 37 } 38 } 39 } 40 $_return_data[$key] = $_arr_key; 41 unset($_arr_key); 42 } 43 44 return $_return_data; 45 } 46 47 48 $score_a = array( 49 array('grade' => '一年级', 'sum_a' => 20), 50 array('grade' => '二年级', 'sum_a' => 21), 51 array('grade' => '三年级', 'sum_a' => 15), 52 array('grade' => '四年级', 'sum_a' => 3), 53 array('grade' => '五年级', 'sum_a' => 14) 54 ); 55 56 $score_b = array( 57 array('grade' => '一年级', 'sum_b' => 21), 58 array('grade' => '二年级', 'sum_b' => 14), 59 array('grade' => '四年级', 'sum_b' => 40), 60 array('grade' => '五年级', 'sum_b' => 12), 61 array('grade' => '六年级', 'sum_b' => 25), 62 ); 63 64 $score_c = array( 65 array('grade' => '一年级', 'sum_c' => 45), 66 array('grade' => '三年级', 'sum_c' => 24), 67 array('grade' => '四年级', 'sum_c' => 5), 68 array('grade' => '六年级', 'sum_c' => 12) 69 ); 70 71 $score_d = array( 72 array('grade' => '一年级', 'sum_d' => 12), 73 array('grade' => '二年级', 'sum_d' => 45), 74 array('grade' => '六年级', 'sum_d' => 12) 75 ); 76 77 $_last_data = statArrMergeHandle('grade', array('sum_a', 'sum_b', 'sum_c', 'sum_d'), $score_a, $score_b, $score_c, $score_d); 最终结果
|
2022-08-30
2022-08-17
2022-11-06
2022-08-15
2022-08-18
请发表评论