Maison >base de données >tutoriel mysql >Comment additionner les valeurs d'une colonne d'un tableau 2D en PHP sans boucles « foreach » ?

Comment additionner les valeurs d'une colonne d'un tableau 2D en PHP sans boucles « foreach » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 12:08:11577parcourir

How to Sum a 2D Array Column's Values in PHP without `foreach` Loops?

Somme des valeurs dans une colonne de tableau 2D sans boucles Foreach

En PHP 5.4, il est possible de additionner les valeurs dans une colonne spécifiée d'un Tableau 2D sans recourir aux boucles foreach.

Considérez le multidimensionnel suivant array :

Array (
    [0] => Array ( [f_count] => 1 [uid] => 105 )
    [1] => Array ( [f_count] => 0 [uid] => 106 )
    [2] => Array ( [f_count] => 2 [uid] => 107 )
    [3] => Array ( [f_count] => 0 [uid] => 108 )
    [4] => Array ( [f_count] => 1 [uid] => 109 )
    [5] => Array ( [f_count] => 0 [uid] => 110 )
    [6] => Array ( [f_count] => 3 [uid] => 111 )
)

Pour additionner les valeurs de la colonne "f_count", nous pouvons utiliser les fonctions array_column et array_sum :

$value = array_sum(array_column($arr,'f_count'));

Cette méthode extrait les valeurs "f_count" du tableau en un tableau unidimensionnel à l'aide de array_column, puis additionne les valeurs de ce tableau à l'aide de array_sum, ce qui donne la valeur de somme de 7.

Alternativement, si vous préférez un format de requête SQL différent, vous pouvez modifier votre requête pour renvoyer un tableau unidimensionnel :

$query = "SELECT SUM(f_count) AS f_count_sum FROM users WHERE gid=:gid";
...
$value = $stmt->fetchColumn();

Cette requête renvoie une seule colonne nommée "f_count_sum " contenant la somme de toutes les valeurs "f_count", accessibles ensuite directement à l'aide de fetchColumn().

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