Für PHP-Entwickler müssen sie häufig verschiedene Vorgänge an Arrays ausführen, z. B. Zusammenführen, Suchen, Sortieren usw. Wie machen wir das, wenn wir die Werte eines Schlüssels in einem Array summieren müssen?
In PHP können Sie mehrere Methoden verwenden, um die Summe eines bestimmten Schlüssels in einem Array zu ermitteln. Die vier verschiedenen Summierungsmethoden werden unten anhand von Fällen demonstriert:
<?php $array = array(1, 2, 3, 4, 5); $sum = 0; for ($i = 0; $i < count($array); $i++) { $sum += $array[$i]; } echo "数组求和结果为:".$sum; ?>
数组求和结果为: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
Der Nachteil dieser Methode besteht darin, dass das Array immer wieder wiederholt werden muss, wenn die Menge der Array-Daten groß ist. Dies wirkt sich auf die Leistung des Skripts aus.
Verwenden Sie die Funktion array_sum() zum Summieren
PHP stellt die Funktion array_sum() zur Verfügung, die sehr praktisch sein kann a Alle Elemente im Array werden wie folgt summiert: #🎜🎜#rrreee#🎜🎜#Wie Sie sehen können, summiert die Funktion alle Elemente, wenn das Array als Parameter an die Funktion array_sum() übergeben wird Elemente im Array und geben das Ergebnis zurück, das endgültige Ausgabeergebnis ist:Das Ergebnis der Array-Summierung ist: 15
#🎜🎜##🎜🎜#Verglichen mit der ersten Methode unter Verwendung der Funktion array_sum() Um die Summationsoperation direkt bereitzustellen, ist der Code einfacher und leichter zu verstehen, der Nachteil besteht jedoch darin, dass es möglicherweise Einschränkungen für die Schlüssel des Arrays gibt. #🎜🎜# Das Ergebnis der Array-Summierung ist: 15
#🎜🎜##🎜🎜#Der Vorteil dieser Methode besteht darin, dass im Vergleich zur ersten Methode beliebige Operationen an den Elementen des Arrays über die Abschlussfunktion ausgeführt werden können die Funktion array_sum() In manchen Fällen flexibler. #🎜🎜#Die Summe mehrdimensionaler Arrays ist: 28
#🎜🎜##🎜🎜#Die rekursive Methode zum Implementieren der Summe mehrdimensionaler Arrays ist zwar umständlicher, aber extrem flexibel und kann mehrere Ebenen verarbeiten. Sehr nützlich, wenn Arrays Schicht für Schicht verschachtelt werden. #🎜🎜##🎜🎜#In der tatsächlichen Projektentwicklung können wir die oben genannten verschiedenen Methoden auswählen, um die Summe der Array-Schlüssel entsprechend unterschiedlichen Anforderungen zu berechnen und sie entsprechend Leistung und Lesbarkeit auszugleichen. #🎜🎜#Das obige ist der detaillierte Inhalt vonSo ermitteln Sie die Summe eines Schlüssels in einem Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!