Heim  >  Artikel  >  Backend-Entwicklung  >  PHP findet die Summe einer Spalte in einem zweidimensionalen Array

PHP findet die Summe einer Spalte in einem zweidimensionalen Array

PHPz
PHPzOriginal
2023-05-07 21:18:37771Durchsuche

Während des PHP-Entwicklungsprozesses müssen wir häufig Summenoperationen für Daten in Arrays durchführen. Bei eindimensionalen Arrays können wir die Funktion array_sum direkt zum Summieren verwenden. Wenn das Array jedoch zu einem zweidimensionalen Array wird, benötigen wir einige zusätzliche Operationen, um die Summe der angegebenen Spalten zu ermitteln.

Zum Beispiel haben wir jetzt ein zweidimensionales Array, das Verkaufsdaten speichert. Jedes Unterarray stellt die Verkaufsdaten eines Produkts dar, einschließlich Produkt-ID, Verkaufsvolumen, Stückpreis und andere Informationen. Wir müssen den Gesamtumsatz aller Artikel ermitteln, der die Summe aus dem Produkt aus Verkaufsvolumen und Stückpreis ist.

Wie implementiert man diesen Vorgang?

Zuerst können wir die Funktion array_column verwenden, um das Array der angegebenen Spalte abzurufen. Diese Funktion ist neu in der PHP5.5+-Version. Ihre Syntax ist: array_column ( array $input , Mixed $column_key [, Mixed $index_key = null ] ). Darunter ist $input das Array der zu extrahierenden Spalten und $ Column_key ist die zu extrahierende Spalte. $index_key ist optional und der Schlüsselname oder numerische Index der Spalte, die als Schlüssel des zurückgegebenen Arrays verwendet werden soll.

Zum Beispiel können wir im obigen zweidimensionalen Array von Verkaufsdaten den folgenden Code verwenden, um das Verkaufsarray aller Produkte zu erhalten:

$sold_amount = array_column($sales_data, 'sold_amount');

Als nächstes können wir die Funktion array_reduce verwenden, um das zu erhaltende Array $sold_amount zu akkumulieren das Verkaufsvolumen die Summe von. Die Syntax lautet: array_reduce ( array $array , callable $callback [, Mixed $initial = null ] ), wobei $array das zu akkumulierende Array ist, $callback eine benutzerdefinierte Callback-Funktion ist und $initial der Anfangswert ist.

Zum Beispiel können wir den folgenden Code verwenden, um die Summe der Verkäufe aller Produkte zu ermitteln:

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

Als nächstes müssen wir denselben Vorgang für das Einheitspreis-Array ausführen, um die Summe der Einheitspreise aller Produkte zu erhalten . Schließlich können wir die beiden Summen miteinander multiplizieren, um den Gesamtumsatz für alle Artikel zu erhalten.

Der vollständige Code lautet wie folgt:

$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;

Nach der Ausführung des obigen Codes lautet die Ausgabe: Der Gesamtumsatz aller Produkte beträgt: 630.

Zusammenfassend lässt sich sagen, dass wir, wenn wir eine Summenoperation für eine Spalte eines zweidimensionalen Arrays durchführen müssen, die Funktion array_column verwenden können, um das Array der angegebenen Spalte abzurufen, und dann die Funktion array_reduce verwenden können, um eine Akkumulationsoperation durchzuführen auf dem Array, um die Summe der Spalte zu erhalten. Durch diese Methoden können wir Daten bequemer verarbeiten und die Entwicklungseffizienz verbessern.

Das obige ist der detaillierte Inhalt vonPHP findet die Summe einer Spalte in einem zweidimensionalen Array. 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