Maison > développement back-end > tutoriel php > Comment additionner efficacement les valeurs de colonnes dans des tableaux PHP multidimensionnels ?

Comment additionner efficacement les valeurs de colonnes dans des tableaux PHP multidimensionnels ?

Patricia Arquette
Libérer: 2024-12-29 17:05:11
original
648 Les gens l'ont consulté

How to Efficiently Sum Column Values in Multi-Dimensional PHP Arrays?

Comment additionner les valeurs en colonnes dans des tableaux multidimensionnels

Dans les tableaux multidimensionnels, résumer les valeurs le long des colonnes est une tâche courante. Voici comment procéder, compte tenu du défi des jeux de clés associatives dynamiques :

Solution de cas général avec array_walk_recursive

En utilisant array_walk_recursive, vous pouvez résumer de manière cohérente les colonnes quelle que soit la structure des clés. :

$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() pour Exact Clés

À partir de PHP 5.5, vous pouvez utiliser array_column pour résumer efficacement des colonnes spécifiques :

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

Somme totale pour tous les ensembles de clés

Si vous voulez la somme globale de tous les tableaux internes avec les clés correspondantes (comme dans la sortie souhaitée), utilisez ceci approche :

$final = array_shift($input);

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

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

Solution de cas général avec array_column

Une approche plus avancée utilisant array_column consiste à identifier toutes les clés uniques, puis à résumer :

$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