Maison >développement back-end >tutoriel php >Comment regrouper et additionner les données d'un tableau par colonne en PHP ?

Comment regrouper et additionner les données d'un tableau par colonne en PHP ?

DDD
DDDoriginal
2024-12-06 13:52:12980parcourir

How to Group and Sum Array Data by Column in PHP?

Regrouper les données du tableau sur une colonne et additionner les données d'une autre colonne pour former un tableau associatif plat

Problème :

Étant donné un tableau contenant des paires clé-valeur, regroupez les données en fonction des valeurs d'une colonne spécifique et additionnez les données d'une autre colonne. Par exemple, si vous avez le tableau suivant :

$array = [
    ['name' => 'Bank BRI', 'amount' => 0], 
    ['name' => 'Bank BRI', 'amount' => 0], 
    ['name' => 'Bank BCA', 'amount' => 1412341234],
    ['name' => 'Bank CIMB Niaga', 'amount' => 532532552], 
    ['name' => 'Bank BRI', 'amount' => 34534534], 
    ['name' => 'Bank CIMB Niaga', 'amount' => 453425243], 
    ['name' => 'Bank BRI', 'amount' => 0], 
    ['name' => 'Bank BNI', 'amount' => 124124], 
    ['name' => 'Bank CIMB Niaga', 'amount' => 352345623], 
    ['name' => 'Bank BCA', 'amount' => 23432423], 
    ['name' => 'Bank Mandiri', 'amount' => 0], 
    ['name' => 'Bank BCA', 'amount' => 0], 
    ['name' => 'Bank BCA', 'amount' => 0], 
    ['name' => 'Bank Permata', 'amount' => 352352353],
];

Solution :

Pour regrouper les données en fonction de la colonne « nom » et additionner les données dans le colonne « montant », suivez ces étapes :

  1. Initialisez un tableau vide appelé $bankTotals. Ce tableau stockera les données groupées.
  2. Parcourez le tableau d'entrée à l'aide d'une boucle foreach.
  3. Pour chaque élément du tableau, vérifiez si le tableau bankTotals contient déjà une clé correspondant au 'nom 'valeur de l'élément actuel.
  4. Si le tableau bankTotals ne contient pas de clé correspondant à la valeur 'nom' actuelle, créez une nouvelle clé avec cette valeur et définissez sa valeur à 0.
  5. Ajoutez la valeur du montant de l'élément actuel à la clé correspondante dans le tableau bankTotals.

Après avoir parcouru l'ensemble du tableau d'entrée, le tableau $bankTotals contiendra les données regroupées avec les noms des banques comme clés et les montants sommés comme valeurs.

Voici le code pour obtenir le résultat souhaité sortie :

$bankTotals = array();
foreach($array as $amount)
{
  $bankTotals[$amount['name']] += $amount['amount'];
}

print_r($bankTotals);

Sortie :

Array
(
    [Bank BRI] => 34534534
    [Bank BCA] => 1435773657
    [Bank CIMB Niaga] => 1338303418
    [Bank BNI] => 124124
    [Bank Mandiri] => 0
    [Bank Permata] => 352352353
)

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