关于php:对动态变量使用array_reduce和array_map

Use array_reduce and array_map for dynamic variables

我想让这个变量$total[$i]给出以下函数的结果:

1
2
$total[$i] = (array_reduce((array_map(function($x, $y) { return $x * $y; },
                   $corp_resp[$i], $corp_resp_template)),function($carry,$item){return $carry+=$item;},0));

我从$corp_resp_template接收示例:array(0.4,0.2,0.1)for $corp_resp array(array(sub1(0.2,0.3,0.5)arraysub2(0.2,0.5,0.7)))

该操作的$corp_resp_template仅为一个。$corp_resp是一个数组,其中子数组的大小取决于$carCount,在这种情况下,$carCount=2如果是4,则会给出4个子数组,其中,该值将由$corp_resp_template插入,将只有一个数组的大小与$corp_resp相同。

示例操作:

总计1=(0.4*0.2+0.2*0.3+0.5*0.1)=0.19美元总计[0]

合计2=(0.4*0.2+0.2*0.5+0.1*0.7)=0.25美元合计[1]

总值将插入表格的行中。

谢谢您。


一切看起来都很好:

1
2
3
4
5
6
7
8
9
10
11
$corp_resp_template = [0.4,0.2,0.1];
$corp_resp = [[0.2,0.3,0.5],[0.2,0.5,0.7]];

for($i = 0;$i<count($corp_resp);$i++){

    $total[$i] = (array_reduce(array_map(function($x, $y){
      return $x * $y;
    },$corp_resp[$i], $corp_resp_template),function($carry,$item){return $carry+=$item;},0));
}

print_r($total);

出:

1
2
3
4
5
Array
(
   [0] => 0.19
   [1] => 0.25
)