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 :
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
该方式缺点是需要一遍一遍的循环数组,当数组数据量较大时,会影响脚本的性能。
PHP 中提供了 array_sum() 函数,可以很方便的对一个数组中所有元素进行求和操作,用法如下:
<?php $array = array(1, 2, 3, 4, 5); echo "数组求和结果为:" . array_sum($array); ?>
可以看到,将数组作为参数传递给 array_sum() 函数,函数会对数组中的所有元素求和并返回其结果,最终输出结果为: 数组求和结果为:15
相较于第一种方式,使用 array_sum() 函数直接提供求和的操作,代码更加简单易懂,但缺点是可能对数组的键作出限制。
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() 函数某些情况下更加灵活。
以上三种方法都是用于求解一维数组的键和值,当涉及到多维数组时,需要先对数组进行递归展开,才能进行求和处理。
下面我们就来看下如何使用递归方式实现多维数组的求和处理:
<?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
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. 🎜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. 🎜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!