如何按列获取数组的总和?

How to get the sum of arrays by column?

如何按列获取这些数组的总和?

$arr = [["0","45","0","0","-100","0"],
        ["22","0","0","12","18","0"],
        ["0","0","14","12","0","0"]];

预期输出

$sum = ["22","45","14","24","-82","0"];

您可以使用 array_sum() 和 array_column()。

$sums = [];

foreach (array_keys($arr[0]) as $column) {
  $sums[$column] = array_sum(array_column($arr, $column));
}

你可以使用for循环,逐一求出每一列的和,然后推入新数组。

$a = [
        ["0","45","0","0","-100","0"],
        ["22","0","0","12","18","0"],
        ["0","0","14","12","0","0"]
     ];
   
//Calculates number of rows and columns present in given matrix  
$rows = count($a); 
$cols = count($a[0]); 

$sumArray = array();
//Calculates sum of each column of given matrix  
for($i = 0; $i < $cols; $i++){  
    $sumCol = 0;  
    for($j = 0; $j < $rows; $j++){  
      $sumCol = $sumCol + $a[$j][$i];  
    }  
    print("Sum of " . ($i+1) . " column: " . $sumCol);  
    print("<br>");
    array_push($newArray, $sumCol);
}

print_r($sumArray);