【问题标题】:Format number in array within an array_sum格式化 array_sum 中的数组中的数字
【发布时间】:2021-08-12 01:17:46
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 能分享一下数组吗

标签: php laravel-blade array-column array-sum


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-02
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 2021-04-07
    相关资源
    最近更新 更多