2

我正在从 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 完成求和的事情,但我想学习如何做到这一点。

提前致谢 :)

4

3 回答 3

6

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

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

echo number_format( $sum, 2 );
于 2012-04-07T21:40:52.353 回答
1

也许是这样的:

<?
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";
} ?>
于 2012-04-07T21:41:17.837 回答
1

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

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

然后你可以使用array_sum

echo number_format(array_sum($nums), 2);
于 2012-04-07T21:47:05.293 回答