1

我想让该变量$total[$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));

我从$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 $total[0]

总计 2 =(0.4*0.2+0.2*0.5+0.1*0.7)=0.25 $total[1]

该总值将插入表格的行中。

谢谢你。

4

1 回答 1

1

一切看起来都很正常:

$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);

出去:

Array
(
   [0] => 0.19
   [1] => 0.25
)
于 2017-04-18T16:02:58.117 回答