Maison > base de données > tutoriel mysql > Comment additionner efficacement les valeurs dans une colonne spécifique d'un tableau multidimensionnel ?

Comment additionner efficacement les valeurs dans une colonne spécifique d'un tableau multidimensionnel ?

Linda Hamilton
Libérer: 2024-12-15 13:50:54
original
142 Les gens l'ont consulté

How to Efficiently Sum Values in a Specific Column of a Multidimensional Array?

Somme des valeurs dans une colonne de tableau multidimensionnel

Les tableaux multidimensionnels présentent un défi lorsqu'il s'agit de additionner des colonnes spécifiques. Considérez l'exemple de tableau donné :

$arr = [
    [0] => ['f_count' => 1, 'uid' => 105],
    [1] => ['f_count' => 0, 'uid' => 106],
    [2] => ['f_count' => 2, 'uid' => 107],
    [3] => ['f_count' => 0, 'uid' => 108],
    [4] => ['f_count' => 1, 'uid' => 109],
    [5] => ['f_count' => 0, 'uid' => 110],
    [6] => ['f_count' => 3, 'uid' => 111]
];
Copier après la connexion

La sortie souhaitée est 7, qui est la somme de la colonne f_count.

Solution sans boucle Foreach

PHP 5.5 et versions ultérieures fournissent deux fonctions qui simplifient cela task :

  • array_column : Extrait une colonne spécifique d'un tableau.
  • array_sum : Additionne les valeurs d'un tableau.

En utilisant ces fonctions, nous pouvons obtenir la somme sans foreach loop:

$f_count_column = array_column($arr, 'f_count');
$sum = array_sum($f_count_column);
Copier après la connexion

Approche alternative : restructurer la requête

Au lieu de récupérer un tableau multidimensionnel, nous pouvons restructurer la requête pour renvoyer un tableau unidimensionnel :

$query = "SELECT SUM(f_count) AS total_f_count FROM users WHERE gid=:gid";

$stmt = $pdo->prepare($query);
$stmt->execute([':gid' => $gid]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$total_f_count = $row['total_f_count'];
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