繁体   English   中英

foreach循环php中的值总和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM