[英]Sum of values in a foreach loop php
我有这样的回应:
"data": [
{
"pay": "2010000",
},
{
"pay": "3010000",
},
{
"pay": "3920000",
},
]
foreach ($data as $data) {
$sum += $data['pay'];
array_push($newArr, array(
"finalResult" => '0',
)
);
}
我想得到(个人薪水除以所有薪水之和)结果,并将此值推入数组。 我有一个foreach循环,试图获得最终结果。 但是最终结果数组显示了错误的数据。 有什么我想念的吗?
我尝试了两个这样的foreach循环。 但是我得到错误的结果
foreach ($newArr as $newArr_key => $newArr_value) {
if ($sum != 0) {
$finalResult = $data['pay']/ $sum;
if (isset($finalResult) && $finalResult != '') {
$newArr[$newArr_key]['finalResult'] = $finalResult;
}
} else {
$finalResult = 'Division by Zero';
}
}
您可以将array_sum()
与array_column()
来计算“薪水”的总和。 然后,您可以使用array_map()
计算沿总和的单个总和的平均值。
$data = [
["pay" => "2010000"],
["pay" => "3010000"],
["pay" => "3920000"],
];
$sum = array_sum(array_column($data, 'pay'));
$out = array_map(function($item) use($sum) {
return ['finalResult' => $item['pay'] / $sum] ;
}, $data);
print_r($out);
输出:
Array
(
[0] => Array
(
[finalResult] => 0.2248322147651
)
[1] => Array
(
[finalResult] => 0.33668903803132
)
[2] => Array
(
[finalResult] => 0.43847874720358
)
)
要么 :
$data = [
["pay" => "2010000"],
["pay" => "3010000"],
["pay" => "3920000"],
];
$sum = array_sum(array_column($data, 'pay'));
$out = array_map(function($item) use($sum) {
return $item['pay'] / $sum ;
}, $data);
print_r($out);
输出:
Array
(
[0] => 0.2248322147651
[1] => 0.33668903803132
[2] => 0.43847874720358
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.