0

我在 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 欧元</p>

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

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

谢谢

4

1 回答 1

0

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

我修改了代码以这种方式得到总和:

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

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

于 2021-05-23T13:46:39.597 回答