Maison  >  Article  >  développement back-end  >  Comment trouver la somme d'une clé dans un tableau en php

Comment trouver la somme d'une clé dans un tableau en php

PHPz
PHPzoriginal
2023-04-20 13:55:47947parcourir

Pour les développeurs PHP, il est souvent nécessaire d'effectuer diverses opérations sur les tableaux, comme la fusion, la recherche, le tri, etc. Lorsque nous devons additionner les valeurs d’une clé dans un tableau, comment faire ?

En PHP, vous pouvez utiliser plusieurs méthodes pour trouver la somme d'une certaine clé dans un tableau. Les quatre méthodes de sommation différentes sont illustrées ci-dessous à travers des cas :

  1. Utilisez une boucle pour parcourir le tableau et additionner

La première. méthode La façon de faire la somme est d'utiliser une boucle pour parcourir le tableau et d'ajouter chaque valeur clé, et enfin d'obtenir le résultat de la sommation :

<?php
$array = array(1, 2, 3, 4, 5);
$sum = 0;
for ($i = 0; $i < count($array); $i++) {
    $sum += $array[$i];
}
echo "数组求和结果为:".$sum;
?>

Comme vous pouvez le voir, nous utilisons la boucle for pour parcourir l'ensemble du tableau et utilisons $sum pour stocker la sommation finale Par conséquent, chaque fois que les éléments du tableau sont ajoutés, le résultat final de sortie est : Le résultat de la sommation du tableau est : 15数组求和结果为:15

该方式缺点是需要一遍一遍的循环数组,当数组数据量较大时,会影响脚本的性能。

  1. 使用 array_sum() 函数求和

PHP 中提供了 array_sum() 函数,可以很方便的对一个数组中所有元素进行求和操作,用法如下:

<?php
$array = array(1, 2, 3, 4, 5);
echo "数组求和结果为:" . array_sum($array);
?>

可以看到,将数组作为参数传递给 array_sum() 函数,函数会对数组中的所有元素求和并返回其结果,最终输出结果为: 数组求和结果为:15

相较于第一种方式,使用 array_sum() 函数直接提供求和的操作,代码更加简单易懂,但缺点是可能对数组的键作出限制。

  1. 使用 array_reduce() 函数求和

PHP 中还有一种求和的方式是使用 array_reduce() 函数实现,在数组中循环,并对键值进行迭代处理,代码如下:

<?php
$array = array(1, 2, 3, 4, 5);
$sum = array_reduce($array, function($carry, $item) {
    $carry += $item;
    return $carry;
});
echo "数组求和结果为:" . $sum;
?>

该方法需要传入两个参数,数组和一个处理函数,函数中 $carry 代表上一次的计算结果,$item 代表当前处理的元素。

array_reduce() 函数会对传入的数组进行迭代处理,每次将一个元素传入处理函数中,对元素进行操作,最终返回处理的结果,最终输出结果为:数组求和结果为:15

该方法优点是相对第一种方式,通过闭包函数可以对数组的元素进行任意操作,相比 array_sum() 函数某些情况下更加灵活。

  1. 使用递归计算多维数组某个键的和

以上三种方法都是用于求解一维数组的键和值,当涉及到多维数组时,需要先对数组进行递归展开,才能进行求和处理。

下面我们就来看下如何使用递归方式实现多维数组的求和处理:

<?php
$array = array(
        1, 
        2, 
        array(
            3, 
            4,
            array(5, 6, 7)
        )
);
function array_sum_recursive($input)
{
    $sum = 0;
    foreach ($input as $item) {
        if (is_array($item)) {
            $sum += array_sum_recursive($item);
        } else if (is_numeric($item)) {
            $sum += $item;
        }
    }
    return $sum;
}
echo "多维数组求和结果为:".array_sum_recursive($array);
?>

通过上述函数 array_sum_recursive(),我们可以遍历多维数组的每一个元素,并对其中每个子数组采用递归方式进行求和,最终返回多维数组的求和结果。输出结果为:多维数组求和结果为:28

L'inconvénient de cette méthode est qu'elle nécessite pour faire défiler le tableau encore et encore. Lorsque la quantité de données dans le tableau est grande, cela affectera les performances du script.

    Utilisez la fonction array_sum() pour additionner

    🎜PHP fournit la fonction array_sum(), qui peut facilement additionner tous les éléments d'un tableau. L'utilisation est la suivante : 🎜rrreee🎜 As. vous pouvez voir, si le tableau est passé en paramètre à la fonction array_sum(), la fonction additionnera tous les éléments du tableau et renverra le résultat. Le résultat final est : Le résultat de la sommation du tableau est : 15. 🎜 🎜Par rapport à la première méthode, l'utilisation de la fonction array_sum() fournit directement l'opération de somme. Le code est plus simple et plus facile à comprendre, mais l'inconvénient est qu'il peut y avoir des restrictions sur les clés du tableau. 🎜
      🎜Utilisez la fonction array_reduce() pour la sommation🎜🎜🎜Il existe une autre façon de faire la somme en PHP, qui consiste à utiliser la fonction array_reduce() pour parcourir le tableau et parcourir les valeurs clés . Le code est le suivant : 🎜rrreee🎜Cette méthode doit transmettre deux paramètres, un tableau et une fonction de traitement. Dans la fonction, $carry représente le résultat du dernier calcul et $item représente l'élément actuellement traité. La fonction 🎜🎜array_reduce() traitera de manière itérative le tableau entrant, en passant un élément dans la fonction de traitement à chaque fois, en opérant sur les éléments et en renvoyant finalement le résultat final du traitement : le résultat de la sommation du tableau est : 15🎜🎜L'avantage de cette méthode est que par rapport à la première méthode, des opérations arbitraires peuvent être effectuées sur les éléments du tableau via la fonction de fermeture. Par rapport à la fonction array_sum(), elle est plus flexible dans certains cas. cas. 🎜
        🎜Utilisez la récursion pour calculer la somme d'une clé d'un tableau multidimensionnel🎜🎜🎜Les trois méthodes ci-dessus sont utilisées pour résoudre les clés et les valeurs d'un tableau unidimensionnel Quand. lorsqu'il s'agit de tableaux multidimensionnels, vous devez d'abord Le tableau doit être étendu de manière récursive avant que le traitement de sommation puisse être effectué. 🎜🎜Voyons comment utiliser la récursion pour implémenter le traitement de sommation de tableaux multidimensionnels : 🎜rrreee🎜Grâce à la fonction array_sum_recursive() ci-dessus, nous pouvons parcourir chaque élément du tableau multidimensionnel et effectuer un traitement récursif sur chaque sous -array.Somme, et renvoie enfin le résultat de la sommation d'un tableau multidimensionnel. Le résultat de sortie est : La somme des tableaux multidimensionnels est : 28🎜🎜Bien qu'il soit fastidieux d'implémenter la somme des tableaux multidimensionnels de manière récursive, elle est extrêmement flexible et est très utile lorsqu'il s'agit de tableaux imbriqués multicouches pratiques. 🎜🎜Dans le développement réel du projet, nous pouvons choisir les différentes méthodes ci-dessus pour calculer la somme des clés du tableau en fonction de différents besoins et les équilibrer en fonction des performances et de la lisibilité. 🎜

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