Maison > développement back-end > Problème PHP > PHP trouve la somme d'une colonne dans un tableau à deux dimensions

PHP trouve la somme d'une colonne dans un tableau à deux dimensions

PHPz
Libérer: 2023-05-07 21:18:37
original
835 Les gens l'ont consulté

Pendant le processus de développement PHP, nous devons souvent effectuer des opérations de somme sur les données des tableaux. Pour les tableaux unidimensionnels, nous pouvons utiliser la fonction array_sum pour additionner directement, mais lorsque le tableau devient un tableau à deux dimensions, nous avons besoin de quelques opérations supplémentaires pour trouver la somme des colonnes spécifiées.

Par exemple, nous disposons désormais d'un tableau bidimensionnel qui stocke les données de vente. Chaque sous-tableau représente les données de vente d'un produit, y compris l'identifiant du produit, le volume des ventes, le prix unitaire et d'autres informations. Nous devons trouver le revenu total de tous les articles, qui est la somme du produit du volume des ventes et du prix unitaire.

Alors, comment mettre en œuvre cette opération ?

Tout d'abord, nous pouvons utiliser la fonction array_column pour obtenir le tableau de la colonne spécifiée. Cette fonction est nouvelle dans la version PHP5.5+. Sa syntaxe est : array_column ( array $input , Mixed $column_key [, Mixed $index_key = null ] ). Parmi eux, $input est le tableau de colonnes à extraire, et $). column_key est la colonne à extraire. Le nom de clé ou l'index numérique de la colonne extraite est facultatif et est le nom de clé ou l'index numérique de la colonne à utiliser comme clé du tableau renvoyé.

Par exemple, dans le tableau bidimensionnel de données de ventes ci-dessus, nous pouvons utiliser le code suivant pour obtenir le tableau de ventes de tous les produits :

$sold_amount = array_column($sales_data, 'sold_amount');
Copier après la connexion

Ensuite, nous pouvons utiliser la fonction array_reduce pour accumuler le tableau $sold_amount pour obtenir le volume des ventes est la somme de. La syntaxe est la suivante : array_reduce ( array $array , callable $callback [, Mixed $initial = null ] ), où $array est le tableau à accumuler, $callback est une fonction de rappel personnalisée et $initial est la valeur initiale.

Par exemple, nous pouvons utiliser le code suivant pour trouver la somme des ventes de tous les produits :

$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});
Copier après la connexion

Ensuite, nous devons effectuer la même opération sur le tableau des prix unitaires pour obtenir la somme des prix unitaires de tous les produits . Enfin, nous pouvons multiplier les deux sommes pour obtenir le revenu total pour tous les articles.

Le code complet est le suivant :

$sales_data = array(
    array('id' => 1, 'sold_amount' => 50, 'unit_price' => 2.5),
    array('id' => 2, 'sold_amount' => 20, 'unit_price' => 3.2),
    array('id' => 3, 'sold_amount' => 100, 'unit_price' => 1.8),
);

$sold_amount = array_column($sales_data, 'sold_amount');
$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});

$unit_price = array_column($sales_data, 'unit_price');
$total_unit_price = array_reduce($unit_price, function($carry, $item){
    return $carry + $item;
});

$total_revenue = $total_sold_amount * $total_unit_price;

echo '所有商品的总收入为:' . $total_revenue;
Copier après la connexion

Après l'exécution du code ci-dessus, le résultat est : le revenu total de tous les produits est : 630.

Pour résumer, lorsque nous devons effectuer une opération de somme sur une colonne d'un tableau à deux dimensions, nous pouvons utiliser la fonction array_column pour obtenir le tableau de la colonne spécifiée, puis utiliser la fonction array_reduce pour effectuer une opération d'accumulation sur le tableau pour obtenir la somme de la colonne. Grâce à ces méthodes, nous pouvons traiter les données plus facilement et améliorer l'efficacité du développement.

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