2012-07-11 87 views
0
>Array 
>(
>> [valor_pago_total] => Array 
>>>  (
>>>>   [0] => 14.750.861,55 
>>>>   [1] => 20.828.923,13 
>>>>   [2] => 18.431.681,20 
>>>>   [3] => 43.403.452,99 
>>>>   [4] => 19.177.285,19 
>>>>   [5] => 30.213.514,73 
>>>>   [6] => 5.296.079,04 
>>>>   [7] => 875.873,76 
>>>>   [8] => 254.810,00 
>>>) 
>>) 

为什么我执行array_sum($ valor_pago_total),我得到了错误的结果。为什么?为什么这个数组不能array_sum()?

+0

尝试移除分离千千万万的时期。 – Blazemonger 2012-07-11 18:20:57

+0

你能发布更多你的代码吗?看起来你可能会在关联数组上调用'array_sum'。 – robbrit 2012-07-11 18:25:46

回答

1

摆脱通过替换它们没有任何时期,并使逗号进入一个时期,使array_sum()工作。然后使用number_format()将其重新转换为格式化结果。

请注意,结果将需要一个64位机器。

array_walk($array['valor_pago_total'], function(&$el) { $el = str_replace(',', '.', str_replace('.', '', $el)); }); 
$sum = array_sum($array['valor_pago_total']); 
var_dump($sum, number_format($sum, 2, ',', '.')); 

outputs

float(153232481.59) 
string(14) "153.232.481,59"