Maison > développement back-end > tutoriel php > Comment regrouper un tableau multidimensionnel par deux colonnes et sommer les valeurs pour chaque groupe ?

Comment regrouper un tableau multidimensionnel par deux colonnes et sommer les valeurs pour chaque groupe ?

Mary-Kate Olsen
Libérer: 2024-11-06 01:16:02
original
836 Les gens l'ont consulté

How do you group a multidimensional array by two columns and sum values for each group?

Regroupement des données d'un tableau multidimensionnel par deux colonnes et addition des valeurs pour chaque groupe

Considérons un tableau créé en combinant les résultats de deux requêtes de base de données distinctes, ressemblant à ce qui suit :

$arr1 = [
    ['part' => '1', 'address' => 'aaa', 'type' => '1', 'count' => 5],
    ['part' => '1', 'address' => 'bbb', 'type' => '1', 'count' => 5],
    ['part' => '1', 'address' => 'ccc', 'type' => '1', 'count' => 5],
    ['part' => '2', 'address' => 'aaa', 'type' => '1', 'count' => 5],
    ['part' => '2', 'address' => 'bbb', 'type' => '1', 'count' => 5],
    ['part' => '2', 'address' => 'ccc', 'type' => '2', 'count' => 5]
];
Copier après la connexion

L'objectif est de regrouper ce tableau par colonnes « partie » et « type » et de calculer la somme des valeurs « compte » pour chaque groupe.

Pour accomplir Ceci, nous pouvons exploiter la fonction suivante :

<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>
Copier après la connexion

Cette fonction parcourt le tableau d'entrée et remplit un tableau de sortie avec des éléments saisis par la combinaison de valeurs « partie » et « type ». Pour chaque élément de sortie, il définit les champs « partie », « type » et « compte » de manière appropriée, garantissant que le champ « compte » est initialisé à zéro s'il n'est pas déjà défini. La fonction renvoie un tableau des valeurs du tableau de sortie.

En appliquant cette fonction à $arr1, on obtient le résultat souhaité :

$arr2 = [
    ['part' => '1', 'type' => '1', 'count' => 15],
    ['part' => '2', 'type' => '1', 'count' => 10],
    ['part' => '2', 'type' => '2', 'count' => 5]
];
Copier après la connexion

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!

source:php.cn
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