php中计算二维数组平均值/分组平均值实例

计算数组平均值,二维数组平均值计算,分组计算平均值,代码如下:

  1. $array = array(
  2. array('class' => 'a', 'value' => 3),
  3. array('class' => 'a', 'value' => 4),
  4. array('class' => 'b', 'value' => 5),
  5. array('class' => 'b', 'value' => 6)
  6. )

这样的数组可分别以 class键值分组计算平均值,也可以单独计算总的平均值,用法如下:

  1. array_avg($array, 'class');//返回二维数组
  2. array_avg($array);//返回一维数组
  3. // 计算平均值 返回一维数组
  4. // 参数$avgby 按照指定字段算平均值 返回二维数组
  5. private function array_avg($array, $avgby = NULL) {
  6. $array_avg = array ();
  7. $number = count ( $array );
  8. foreach ( $array as $key => $value ) {
  9. if ($avgby) {
  10. $avg_key = $value[$avgby];
  11. $array_avg[$avg_key]['count'] ++;
  12. foreach ( $value as $k => $v ) {
  13. $array_avg[$avg_key][$k] += $v;
  14. }
  15. } else {
  16. foreach ( $value as $k => $v ) {
  17. $array_avg[$k] += $v;
  18. }
  19. }
  20. }
  21. $array = array ();
  22. foreach ( $array_avg as $key => $value ) {
  23. if ($avgby) {
  24. foreach ( $value as $k => $v ) {
  25. $array[$key][$k] = $v / $value['count'];
  26. }
  27. } else {
  28. $array[$key] = $value / $number;
  29. }
  30. }
  31. return $array;
  32. }