Comment implémenter la fusion de données statistiques en PHP

little bottle
Libérer: 2023-04-06 10:56:01
avant
3435 Les gens l'ont consulté

Cet article parle principalement de l'utilisation de PHP pour intégrer différents résultats statistiques. Comme le montre la figure, le nombre de personnes dans différents niveaux scolaires est compté en fonction de la note (ce n'est qu'un exemple), puis une méthode est écrite pour. traitez ces statistiques. Array, les amis intéressés peuvent les consulter, j'espère que cela vous sera utile.

<?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(&#39;grade&#39; => &#39;一年级&#39;, &#39;sum_a&#39; => 20),
  array(&#39;grade&#39; => &#39;二年级&#39;, &#39;sum_a&#39; => 21),
  array(&#39;grade&#39; => &#39;三年级&#39;, &#39;sum_a&#39; => 15),
  array(&#39;grade&#39; => &#39;四年级&#39;, &#39;sum_a&#39; => 3),
  array(&#39;grade&#39; => &#39;五年级&#39;, &#39;sum_a&#39; => 14)
);

$score_b = array(
  array(&#39;grade&#39; => &#39;一年级&#39;, &#39;sum_b&#39; => 21),
  array(&#39;grade&#39; => &#39;二年级&#39;, &#39;sum_b&#39; => 14),
  array(&#39;grade&#39; => &#39;四年级&#39;, &#39;sum_b&#39; => 40),
  array(&#39;grade&#39; => &#39;五年级&#39;, &#39;sum_b&#39; => 12),
  array(&#39;grade&#39; => &#39;六年级&#39;, &#39;sum_b&#39; => 25),
);

$score_c = array(
  array(&#39;grade&#39; => &#39;一年级&#39;, &#39;sum_c&#39; => 45),
  array(&#39;grade&#39; => &#39;三年级&#39;, &#39;sum_c&#39; => 24),
  array(&#39;grade&#39; => &#39;四年级&#39;, &#39;sum_c&#39; => 5),
  array(&#39;grade&#39; => &#39;六年级&#39;, &#39;sum_c&#39; => 12)
);

$score_d = array(
  array(&#39;grade&#39; => &#39;一年级&#39;, &#39;sum_d&#39; => 12),
  array(&#39;grade&#39; => &#39;二年级&#39;, &#39;sum_d&#39; => 45),
  array(&#39;grade&#39; => &#39;六年级&#39;, &#39;sum_d&#39; => 12)
);

$_last_data = statArrMergeHandle(&#39;grade&#39;, array(&#39;sum_a&#39;, &#39;sum_b&#39;, &#39;sum_c&#39;, &#39;sum_d&#39;), $score_a, $score_b, $score_c, $score_d);
Copier après la connexion

Résultat final :

Tutoriels associés : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal