Réduire un tableau 2D en regroupant les lignes par une colonne et en en additionnant une autre au sein de chaque groupe
Dans ce scénario, vous cherchez à manipuler un tableau 2D tableau en organisant ses lignes en fonction d'une colonne spécifique tout en agrégeant les valeurs d'une autre colonne au sein de chaque groupe créé.
Pour résoudre ce problème besoin, envisagez d'utiliser une approche itérative à travers les lignes du tableau d'entrée :
$in = array( ['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'], );
Créez un tableau de sortie vide :
$out = array();
Maintenant, parcourez chaque ligne :
foreach ($in as $row) {
Dans chaque ligne, vérifiez si la valeur dd est déjà présente dans le tableau $out :
if (!isset($out[$row['dd']])) {
Si non, créez une nouvelle entrée pour la valeur dd avec la « quantité » initialisée :
$out[$row['dd']] = array( 'dd' => $row['dd'], 'quantity' => 0, );
Quoi qu'il en soit, mettez à jour la valeur de la quantité en ajoutant la quantité de la ligne actuelle :
$out[$row['dd']]['quantity'] += $row['quantity'];
Enfin, numériquement indexez le tableau $out pour obtenir le tableau 2D réduit souhaité :
$out = array_values($out);
En conséquence, vous obtenez le tableau résumé avec lignes regroupées :
var_dump($out); [ ['quantity' => 15, 'dd' => '01-Nov-2012'], ['quantity' => 3, 'dd' => '02-Nov-2012'], ['quantity' => 19, 'dd' => '03-Nov-2012'], ]
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!