Maison > développement back-end > tutoriel php > Comment calculer efficacement les totaux de colonnes dans des tableaux multidimensionnels irréguliers ?

Comment calculer efficacement les totaux de colonnes dans des tableaux multidimensionnels irréguliers ?

Susan Sarandon
Libérer: 2024-12-24 14:45:14
original
686 Les gens l'ont consulté

How to Efficiently Calculate Column Totals in Irregular Multi-Dimensional Arrays?

Comment calculer les totaux de colonnes dans un tableau multidimensionnel

Considérons un tableau multidimensionnel où les éléments sont disposés en lignes et en colonnes, mais les jeux de clés peuvent varier de manière dynamique. La tâche consiste à calculer la somme des valeurs dans chaque colonne, quelles que soient les variations de clé.

Méthode Array_Walk_Recursive

Pour une solution générale où les tableaux internes peuvent avoir des clés uniques, utiliser array_walk_recursive() :

$final = array();

array_walk_recursive($input, function($item, $key) use (&$final){
    $final[$key] = isset($final[$key]) ?  $item + $final[$key] : $item;
});
Copier après la connexion

Array_Column Méthode

Si des valeurs de clé spécifiques doivent être additionnées, array_column() peut être utilisée :

array_sum(array_column($input, 'gozhi')); // Sums the 'gozhi' column
Copier après la connexion

Pour les tableaux internes uniformes

Si tous les tableaux internes ont les mêmes clés, obtenez la structure de clé initiale :

$final = array_shift($input);

foreach ($final as $key => &$value){
   $value += array_sum(array_column($input, $key));
}    

unset($value);
Copier après la connexion

Général Cas avec Array_Column

Extraire les clés uniques et effectuer des sommes de colonnes :

$final = array();

foreach($input as $value)
    $final = array_merge($final, $value);

foreach($final as $key => &$value)
    $value = array_sum(array_column($input, $key));

unset($value);
Copier après la connexion

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!

source:php.cn
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