使用 PHP 从数据库检索后对值求和


Sum up values after retrieving from database using PHP

我正在从mysql数据库中获取一些信息,并使用以下脚本显示它(我正在使用Codeigniter)

 <?php if(count($records) > 0) { ?>
   <?php $i = $this->uri->segment(3) + 0; foreach ($records as $row){ $i++; ?>
<?php echo $row['amount']; ?>    <br>
<?php  } ?>
<?php } else { echo "No Record Found";} ?>

我得到的输出就像跟随

10,000
20,000.34
15,250.50

现在我正在尝试做的是将$row['amount'];中的所有值相加,并将总和的值放在$sum_value中,以便当我回显 $sum_value 时,我得到以下值

45,250.84

请你告诉我怎么做。

我知道我本可以使用mysql完成求和,但我想学习如何这样做。

提前致谢:)

通过 foreach 的每个循环迭代地添加到您的总和中:

$sum = 0;
foreach ( $records as $row ) {
  $sum += str_replace(",", "", $row['amount']);
}
echo number_format( $sum, 2 );

也许是这样的:

<?
if(count($records) > 0) {
   $i = $this->uri->segment(3) + 0; 
   $sum_value = 0;
   foreach ($records as $row){ 
      $i++; // Don't know what you use $i for, get rid of it if unnecessary
      // Add value to the sum
      $sum_value += (float)str_replace(",", "", $row["amount"]); 
      // Print the current value
      echo $row['amount'] + "<br/>";
   }
   echo $sum_value;  // Print the total sum after the loop
} else { 
   echo "No Record Found";
} ?>

首先,您需要将其转换为正确的数字:

$nums = array_map(function(&$row) {
   return (float) str_replace(',', '',$row['amount']);
}, $records);

然后你可以使用array_sum

echo number_format(array_sum($nums), 2);