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) を実行すると、間違った結果が得られます。なんで?

4

1 に答える 1

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, ',', '.'));

これは出力します

float(153232481.59)
string(14) "153.232.481,59"
于 2012-07-11T18:34:35.680 に答える