Maison > développement back-end > tutoriel php > Comment puis-je regrouper un tableau multidimensionnel selon plusieurs valeurs de colonne et additionner les valeurs d'une autre colonne ?

Comment puis-je regrouper un tableau multidimensionnel selon plusieurs valeurs de colonne et additionner les valeurs d'une autre colonne ?

Patricia Arquette
Libérer: 2024-11-05 22:49:02
original
1047 Les gens l'ont consulté

How can I group a multidimensional array by multiple column values and sum another column's values?

Regroupement des données d'un tableau multidimensionnel par valeurs de colonnes multiples et addition des valeurs de colonnes

Problème :

Ce problème implique un tableau avec données provenant de plusieurs requêtes de base de données dans différentes bases de données. L'objectif est de regrouper les éléments du tableau en fonction de deux valeurs de colonne ("partie" et "type") et de calculer la somme d'une troisième colonne ("compte") pour chaque groupe.

Exemple de tableau :

<code class="php">$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]
];</code>
Copier après la connexion

Sortie souhaitée :

<code class="php">$arr2 = [
    ['part' => '1', 'type' => '1', 'count' => 15],
    ['part' => '2', 'type' => '1', 'count' => 10],
    ['part' => '2', 'type' => '2', 'count' => 5]
];</code>
Copier après la connexion

Solution :

Pour regrouper les éléments du tableau et additionnez les valeurs "count", la fonction suivante 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']) && $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, identifiant les valeurs "part" et "type" pour chaque élément. Il utilise ensuite ces valeurs comme clés pour créer ou récupérer des éléments de sortie. Pour chaque clé, la fonction initialise un champ "count" s'il n'existe pas et l'incrémente avec la valeur du champ "count" de cet élément. Enfin, il renvoie un tableau contenant les éléments groupés.

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