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
Libérer: 2024-11-09 03:26:02
original
264 Les gens l'ont consulté

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'],
];
Copier après la connexion

Résultat souhaité :

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
];
Copier après la connexion

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);
Copier après la connexion

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 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