Maison > Article > développement back-end > Comment regrouper des lignes dans un tableau 2D par colonne et additionner une autre colonne ?
Regrouper les données des lignes d'un tableau 2D par colonne et additionner une autre colonne
Lors de l'analyse des données tabulaires, il devient souvent nécessaire de consolider les lignes en fonction des données partagées. valeurs dans des colonnes spécifiques tout en effectuant des calculs sur d’autres colonnes. Relevez le défi consistant à regrouper les lignes d'un tableau 2D et à additionner les valeurs d'une colonne différente.
Énoncé du problème :
Vous recevez un tableau 2D où chaque ligne représente une entrée de données. . L'objectif est de regrouper ces lignes par une colonne de regroupement spécifiée (par exemple, « dd ») et de additionner les valeurs d'une autre colonne (par exemple, « quantité ») au sein de chaque groupe. Le résultat doit être un tableau 2D réduit avec des valeurs de regroupement uniques et les valeurs de colonne additionnées correspondantes.
Exemple :
Input: [ ['quantity' => 5, 'dd' => '01-Nov-2012'], ['quantity' => 10, 'dd' => '01-Nov-2012'], ['quantity' => 3, 'dd' => '02-Nov-2012'], ['quantity' => 4, 'dd' => '03-Nov-2012'], ['quantity' => 15, 'dd' => '03-Nov-2012'], ]; Desired result: [ ['quantity' => 15, 'dd' => '01-Nov-2012'], ['quantity' => 3, 'dd' => '02-Nov-2012'], ['quantity' => 19, 'dd' => '03-Nov-2012'], ];
Solution :
Pour résoudre ce problème, suivez ces étapes :
Voici un exemple d'implémentation en PHP :
$in = array(array()); // your input $out = array(); foreach ($in as $row) { if (!isset($out[$row['dd']])) { $out[$row['dd']] = array( 'dd' => $row['dd'], 'quantity' => 0, ); } $out[$row['dd']]['quantity'] += $row['quantity']; } $out = array_values($out); // make the out array numerically indexed var_dump($out);
Cette solution regroupe efficacement les lignes par colonne spécifiée, accumule les valeurs de colonne dans chaque groupe et produit une image 2D réduite. tableau comme résultat souhaité.
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!