Heim  >  Artikel  >  Backend-Entwicklung  >  So ermitteln Sie die Summe eines Schlüssels in einem Array in PHP

So ermitteln Sie die Summe eines Schlüssels in einem Array in PHP

PHPz
PHPzOriginal
2023-04-20 13:55:47946Durchsuche

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:

    #🎜🎜 #Verwenden Sie eine Schleife, um das Array zu durchlaufen und zusammenzufassen
Die erste Möglichkeit zum Summieren besteht darin, eine Schleife zu verwenden, um das Array zu durchlaufen, jeden Schlüsselwert zu addieren und schließlich das Summierungsergebnis zu erhalten:

<?php
$array = array(1, 2, 3, 4, 5);
$sum = 0;
for ($i = 0; $i < count($array); $i++) {
    $sum += $array[$i];
}
echo "数组求和结果为:".$sum;
?>
Wie Sie sehen können, verwenden wir die for-Schleife, um das gesamte Array zu durchlaufen, verwenden $sum, um das endgültige Summierungsergebnis zu speichern, und fügen jedes Mal die Elemente im Array hinzu. Das endgültige Ausgabeergebnis ist : Das Ergebnis der Array-Summierung ist: 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(),我们可以遍历多维数组的每一个元素,并对其中每个子数组采用递归方式进行求和,最终返回多维数组的求和结果。输出结果为:多维数组求和结果为:28Der 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. #🎜🎜#
      #🎜🎜#Verwenden Sie die Funktion array_reduce() zum Summieren #🎜🎜##🎜🎜##🎜🎜#Eine andere Möglichkeit zum Summieren in PHP ist die Verwendung der Funktion array_reduce() Führen Sie zur Implementierung eine Schleife im Array durch und durchlaufen Sie die Schlüsselwerte: #🎜🎜#rrreee#🎜🎜#Diese Methode muss zwei Parameter übergeben, das Array und eine Verarbeitungsfunktion, $ Carry repräsentiert das letzte Berechnungsergebnis, $item repräsentiert das aktuell verarbeitete Element. #🎜🎜##🎜🎜#array_reduce() verarbeitet das eingehende Array iterativ, übergibt jedes Mal ein Element an die Verarbeitungsfunktion, verarbeitet die Elemente und gibt schließlich das Verarbeitungsergebnis zurück: 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. #🎜🎜#
        #🎜🎜#Rekursion verwenden, um die Summe eines Schlüssels eines mehrdimensionalen Arrays zu berechnen#🎜🎜##🎜🎜##🎜🎜#Die oben genannten drei Methoden werden verwendet, um Eindimensionale Arrays lösen Wenn es um die Schlüssel und Werte mehrdimensionaler Arrays geht, muss das Array rekursiv erweitert werden, bevor die Summationsverarbeitung durchgeführt werden kann. #🎜🎜##🎜🎜# Schauen wir uns an, wie man mithilfe der Rekursion die Summationsverarbeitung mehrdimensionaler Arrays implementiert: #🎜🎜#rrreee#🎜🎜#Mit der obigen Funktion array_sum_recursive() können wir jedes Element durchlaufen der mehrdimensionalen Array-Elemente und summiert rekursiv jedes der Unterarrays, um schließlich das Summierungsergebnis des mehrdimensionalen Arrays zurückzugeben. Das Ausgabeergebnis ist: 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn