在 array_sum 中格式化数组中的数字

Format number in array within an array_sum

我在一个 laravel 项目中有一个视图,我必须在其中打印一些数组列的总和。

我有这样的代码实现结果:

@foreach($data as $row)

.......

  @foreach($row as $key => $value)

   @if(in_array($key, ['PARZ. IN', 'PARZ. OUT', 'LORDO', 'PREU', 'AAMS', 'RETE ESER.',
                     'RETE OPER.', 'NETTO', 'UTILE ESER.', 'UTILE GEST.']))

    <th style="padding: 1em 0; background-color: #D9EDF7" class="text-center">

       {!! number_format(array_sum( array_column($data, $key)),2, ',', '.') !!} €

    </th>

   @else

    <th style="padding: 1em 0; background-color: #D9EDF7" class="text-center"></th>

   @endif

  @endforeach

@endforeach

它工作正常。但是有个问题。

数字列具有如下格式的意大利货币数字:

1.267,76 欧元

所以总和打印错误,因为数字的格式错误,无法执行总和。

如何在 blade 视图中执行求和之前将所有数字格式化为 1267.76?

谢谢

好的,我正在尝试找到昨天的解决方案。现在我在发布问题后几分钟就发现了它。

我修改了代码,求和是这样的:

{!! number_format(array_sum( str_replace([' €', '.', ','], ['', '', '.'],
                                    array_column($data, $key)) ),2, ',', '.') !!} €

将 str_replace 与 array_column 结合使用,格式化的货币数字已替换为标准数字。然后 number_format 以原始格式打印总和。