在 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 以原始格式打印总和。
我在一个 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 以原始格式打印总和。