为什么这个数组不能array_sum()?

时间:2012-07-11 18:19:37

标签: php arrays sum

>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),得到错误的结果。为什么呢?

1 个答案:

答案 0 :(得分: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"