我有这个循环
foreach($sudentname as $key => $v){
echo 'Student Name : '.$v.'<br/>';
echo 'Admission Number : '.$admissionnmbr[$key].'<br/>';
echo 'Payment Type : '.$purpose[$key].'<br/>';
echo 'Amount : '.$amount[$key].'<br/>';
echo 'Grade : '.$grade[$key].'<br/>';
}
我使用它从一些重复的字段中获取值。
我必须得到金额的总和以获得总数。
假设有人重复重复部分三次。 然后金额将有3次,有三个不同的值。 例如:10,20,30
计算我希望SUM值的总和..并显示循环的外侧。
怎么做?
如果我想要整个数组,我可以使用array_sum
答案 0 :(得分:2)
您需要将它与array_map()耦合以首先选择f_count列:
array_sum(array_map(function($item) {
return $item['yourkey'];
}, $arr));
当然,在内部,这会执行双循环;只是你没有在代码中看到它。您可以使用array_reduce()来摆脱一个循环:
array_reduce($arr, function(&$res, $item) {
return $res + $item['yourkey'];
}, 0);
然而,如果速度是唯一的兴趣,foreach仍然是最快的:
$sum = 0;
foreach ($arr as $item) {
$sum += $item['yourkey'];
}
这要归功于您正在使用的变量的“位置”,即没有用于计算最终总和的函数调用。
答案 1 :(得分:1)
试试这个
<?php
$totalAmount=0;
foreach($sudentname as $key => $v){
$totalAmount +=$amount[$key]; // to sum all of amount
echo 'Student Name : '.$v.'<br/>';
echo 'Admission Number : '.$admissionnmbr[$key].'<br/>';
echo 'Payment Type : '.$purpose[$key].'<br/>';
echo 'Amount : '.$amount[$key].'<br/>';
echo 'Grade : '.$grade[$key].'<br/>';
}
echo $totalAmount;
?>
答案 2 :(得分:1)
$Result = 0;
foreach($sudentname as $key => $v){
echo 'Student Name : '.$v.'<br/>';
echo 'Admission Number : '.$admissionnmbr[$key].'<br/>';
echo 'Payment Type : '.$purpose[$key].'<br/>';
echo 'Amount : '.$amount[$key].'<br/>';
$Result += $amount[$key]; // increment $Result with the $amount[$key]
echo 'Grade : '.$grade[$key].'<br/>';
}
echo "Result: $Result";