使用PHP从数据库检索后总结值

时间:2012-04-07 21:35:56

标签: php codeigniter codeigniter-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时,我得到以下值< / p>

45,250.84

请您告诉我该怎么做。

我知道我可以使用mysql完成总结,但我想学习如何做到这一点。

提前致谢:)

3 个答案:

答案 0 :(得分:6)

通过foreach迭代地为每个循环添加总和:

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

echo number_format( $sum, 2 );

答案 1 :(得分: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";
} ?>

答案 2 :(得分:1)

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

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

然后您可以使用array_sum

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