Maison >développement back-end >tutoriel php >Comment regrouper et additionner des données dans un tableau 2D par colonne ?

Comment regrouper et additionner des données dans un tableau 2D par colonne ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-09 03:26:02213parcourir

How to Group and Sum Data in a 2D Array by Column?

Regroupement et addition de données dans un tableau 2D

Dans ce scénario, vous souhaitez regrouper les lignes d'un tableau 2D en fonction d'un élément spécifique les valeurs de la colonne, puis additionnez les valeurs d'une autre colonne au sein de chaque groupe.

Entrée Données :

[
    ['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'],
];

Résultat souhaité :

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
];

Mise en œuvre :

Pour y parvenir, suivez ces étapes :

  1. Parcourez les tableaux d'entrée lignes.
  2. Pour chaque ligne :

    • Vérifiez si le tableau groupé contient une entrée indexée par la valeur 'dd' de la ligne actuelle.
    • Sinon , créez une entrée avec la valeur 'dd' et une 'quantité' initiale de 0.
    • Incrémentez la 'quantité' valeur de l'entrée du tableau groupé par la « quantité » de la ligne actuelle.
  3. Convertissez le tableau groupé en un tableau indexé numériquement à l'aide de array_values().

Le Le code PHP suivant illustre ce processus :

$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 approche regroupe efficacement les données d'entrée par la colonne « dd » et les sommes les valeurs de la colonne « quantité » pour chaque groupe, produisant le 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!

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