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

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

DDD
DDDoriginal
2024-12-16 12:15:17491parcourir

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

Regrouper les données du tableau par colonne et additionner une autre colonne pour un tableau associatif

Étant donné un tableau de données, tel que :

$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],
];

L'objectif est de regrouper les données en fonction de la colonne « nom » et d'additionner les valeurs « montant » au sein de chaque groupe pour former un appartement. tableau associatif. Le résultat attendu est :

array (
  'Bank BRI' => 34534534,
  'Bank BCA' => 1435773657,
  'Bank CIMB Niaga' => 1338303418,
  'Bank BNI' => 124124,
  'Bank Mandiri' => 0,
  'Bank Permata' => 352352353,
)

Solution :

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

Ce code initialise un tableau vide appelé $bankTotals. Il parcourt ensuite le tableau d'entrée, accédant à chaque sous-tableau représentant une ligne de données. Pour chaque ligne, il ajoute la valeur « montant » à la clé « nom » correspondante dans le tableau $bankTotals. Ce processus regroupe efficacement les lignes par « nom » et additionne les valeurs de « montant » en conséquence.

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