Maison  >  Article  >  développement back-end  >  Comment regrouper les données d'un tableau par plusieurs colonnes et additionner les valeurs en groupes ?

Comment regrouper les données d'un tableau par plusieurs colonnes et additionner les valeurs en groupes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-05 13:18:02373parcourir

How to Group Array Data by Multiple Columns and Sum Values in Groups?

Regrouper les données du tableau par plusieurs colonnes et additionner les valeurs en groupes

Dans cette situation, il est nécessaire de regrouper les données du tableau multidimensionnel en fonction de deux valeurs de colonne (« partie » et « type ») et additionnez les valeurs d'une colonne spécifique (« nombre ») au sein de chaque groupe. Étant donné un tableau d'entrée ($arr1) comme décrit, la sortie souhaitée ($arr2) représente les données groupées avec des valeurs de comptage additionnées pour chaque combinaison de « partie » et de « type ».

Pour obtenir ce résultat, un une fonction personnalisée peut être utilisée :

<code class="php">function groupByPartAndType($input) {
  $output = Array();

  foreach($input as $value) {
    $output_element = &amp;$output[$value['part'] . "_" . $value['type']];
    $output_element['part'] = $value['part'];
    $output_element['type'] = $value['type'];
    !isset($output_element['count']) &amp;&amp; $output_element['count'] = 0;
    $output_element['count'] += $value['count'];
  }

  return array_values($output);
}</code>

Dans cette fonction :

  • Le tableau $output est créé pour stocker les données groupées.
  • Chaque élément de $ l'entrée est itérée.
  • La clé de l'élément $output est créée en concaténant les valeurs 'part' et 'type'.
  • Les valeurs dans $output_element sont attribuées ou mises à jour en conséquence.
  • Enfin, array_values() est utilisé pour renvoyer les valeurs du tableau $output en tant que nouveau tableau.

Alternativement, si les deux bases de données sont sur le même serveur de base de données, le regroupement et la sommation pourrait être effectuée efficacement à l'aide de la fonctionnalité GROUP BY de SQL.

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!

Déclaration:
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