我正在从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);