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

Comment additionner les valeurs en colonnes dans des tableaux PHP multidimensionnels ?

DDD
Libérer: 2024-12-27 09:40:12
original
572 Les gens l'ont consulté

How to Sum Columnar Values in Multi-Dimensional PHP Arrays?

Ajout de valeurs en colonnes dans des tableaux multidimensionnels

Vous souhaitez additionner les valeurs associées à des clés spécifiques dans un tableau multidimensionnel avec différents jeux de clés. Considérez l'entrée suivante :

Array
(
    [0] => Array
        (
            [gozhi] => 2
            [uzorong] => 1
            [ngangla] => 4
            [langthel] => 5
        )

    [1] => Array
        (
            [gozhi] => 5
            [uzorong] => 0
            [ngangla] => 3
            [langthel] => 2
        )

    [2] => Array
        (
            [gozhi] => 3
            [uzorong] => 0
            [ngangla] => 1
            [langthel] => 3
        )
)
Copier après la connexion

Le résultat souhaité est :

Array
(
    [gozhi] => 10
    [uzorong] => 1
    [ngangla] => 8
    [langthel] => 10
)
Copier après la connexion

Pour y parvenir, envisagez les approches suivantes :

array_walk_recursive()

Pour une solution de cas général, utilisez 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()

Pour des clés spécifiques (par exemple, "gozhi"), utilisez array_column() (disponible depuis PHP 5.5) :

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

Pour les tableaux avec des clés identiques

Si tous les tableaux internes ont la même clés :

$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()

Obtenir toutes les clés uniques, puis additionner pour chacune :

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

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal