Heim > Datenbank > MySQL-Tutorial > Wie summiert man Werte in einer bestimmten Spalte eines mehrdimensionalen Arrays effizient?

Wie summiert man Werte in einer bestimmten Spalte eines mehrdimensionalen Arrays effizient?

Linda Hamilton
Freigeben: 2024-12-15 13:50:54
Original
142 Leute haben es durchsucht

How to Efficiently Sum Values in a Specific Column of a Multidimensional Array?

Summenwerte in einer mehrdimensionalen Array-Spalte

Mehrdimensionale Arrays stellen eine Herausforderung dar, wenn es um die Summierung bestimmter Spalten geht. Betrachten Sie das angegebene Beispielarray:

$arr = [
    [0] => ['f_count' => 1, 'uid' => 105],
    [1] => ['f_count' => 0, 'uid' => 106],
    [2] => ['f_count' => 2, 'uid' => 107],
    [3] => ['f_count' => 0, 'uid' => 108],
    [4] => ['f_count' => 1, 'uid' => 109],
    [5] => ['f_count' => 0, 'uid' => 110],
    [6] => ['f_count' => 3, 'uid' => 111]
];
Nach dem Login kopieren

Die gewünschte Ausgabe ist 7, was der Summe der f_count-Spalte entspricht.

Lösung ohne Foreach-Schleife

PHP 5.5 und höher bietet zwei Funktionen, die dies vereinfachen Aufgabe:

  • array_column: Extrahiert eine bestimmte Spalte aus einem Array.
  • array_sum: Summiert die Werte in einem Array.

Mit diesen Funktionen können wir die Summe ohne foreach ermitteln Schleife:

$f_count_column = array_column($arr, 'f_count');
$sum = array_sum($f_count_column);
Nach dem Login kopieren

Alternativer Ansatz: Umstrukturierung der Abfrage

Anstatt ein mehrdimensionales Array abzurufen, können wir die Abfrage umstrukturieren, um ein eindimensionales Array zurückzugeben:

$query = "SELECT SUM(f_count) AS total_f_count FROM users WHERE gid=:gid";

$stmt = $pdo->prepare($query);
$stmt->execute([':gid' => $gid]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$total_f_count = $row['total_f_count'];
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie summiert man Werte in einer bestimmten Spalte eines mehrdimensionalen Arrays effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage