合并二维数组,并计算重复字段的平均值

Posted 今天、天气晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并二维数组,并计算重复字段的平均值相关的知识,希望对你有一定的参考价值。

 1 <?php
 2 $arrs = Array ( 
 3     Array ( \'rname\' => \'小麦\', \'m1\'=> 12.00 ,\'m2\'=> 33,\'qq\'=> 33  ) ,
 4     Array ( \'rname\' => \'小麦\', \'m1\' => 23.00,\'m2\'=> 44,\'qq\'=> 11 ) ,
 5     Array ( \'rname\' => \'ccc\', \'m1\' => 11,\'m2\'=> 22,\'qq\'=> 12 ) 
 6 );
 7 
 8 //计算出重复字段出现的次数
 9 $b=array();
10 foreach($arrs as $v){
11     $b[]=$v[\'rname\'];
12 }
13 $c=array_unique($b);
14 foreach($c as $v){
15     $n=0;
16     foreach($arrs as $t){
17         if($v==$t[\'rname\'])
18             $n++;
19     }
20     $d[][\'nn\']=$n;
21     
22 }
23 
24 //合并数组中重复的值,并进行加计算
25 $tmpval=array();
26 $data=array();
27 $i=0;
28 //遍历原数据
29 foreach($arrs as $key=>$arr){
30     
31     if(!empty($tmpval) && array_key_exists($arr[\'rname\'],$tmpval)){
32         //存在
33         $key=$tmpval[$arr[\'rname\']];
34        
35         $data[$key][\'m1\']+=$arr[\'m1\'];
36         
37         $data[$key][\'m2\']+=$arr[\'m2\'];        
38     }else{
39         //不存在
40         $tmpval[$arr[\'rname\']]=$i;
41         $data[$i++]=$arr;
42     }
43 }
44 
45 //把2个二维数组合并成一个二维数组
46 $zuizhong = array();
47 foreach($data as $k=>$r){
48     $zuizhong[] = array_merge($r,$d[$k]);
49 }
50 
51 //计算出平均值
52 $datas = array();
53 foreach($zuizhong as $key=>$arr){    
54     $datas[$key][\'rname\'] = $arr[\'rname\'];
55     $datas[$key][\'m1\'] = $arr[\'m1\']/$arr[\'nn\'];    
56     $datas[$key][\'m2\'] = $arr[\'m2\']/$arr[\'nn\'];
57 } 
58 
59 echo "<pre>";
60 print_r($d);
61 print_r($data); 
62 print_r($zuizhong); 
63 print_r($datas); 

http://www.cnblogs.com/losesea/archive/2013/06/14/3134900.html

以上是关于合并二维数组,并计算重复字段的平均值的主要内容,如果未能解决你的问题,请参考以下文章

用java二维数组完成两个同学三科成绩,计算每位同学的总分, 各科的平均分

从导入的二维数组计算平均值

二维数组的 Numpy 元素平均计算

无法从 JDBC 获取 OUT 参数中的二维关联数组

php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组

比较数组中的值计算它们并合并表中的行