我从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完成总结,但我想学习如何做到这一点。
提前致谢:)
答案 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);