我有一个行数组,需要将其分批成10行一组,然后将其值求和。
具有13行的样本阵列:
[
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
['amount_paid' => 2050.00],
]
样品阵列的预期结果:
[20500.0, 8200.0]
以上表示前10行的总和,然后是剩余3行的总和。
我所尝试的只是前10个,我想不出如何处理动态行数的每10个数据。
for ($i = 0; $i < count($json); $i++) {
if ($i < 10) {
$subtotalamount += floatval($json[$i]['amount_paid']);
}
}
6条答案
按热度按时间6uxekuva1#
容易理解,您可以使用array_chunk(),array_sum(),array_column()如下:-
relj7zay2#
包含
range
、array_slice
和array_column
函数的简短解决方案:range(0, count($arr), 10)
-生成一个包含一系列元素的数组。它将是[0, 10, 20]
。这些元素是每个大小为10的序列的边界$k
用于从初始阵列$arr
中提取下一个10大小的序列/片段vwkv1x7d3#
whlutmcx4#
试试这个,
kupeojn65#
q43xntqr6#
与@Anant的答案相同的函数风格是使用
array_map()
。代码:(Demo)
在经典循环中,访问列值,并在将第一级索引除以10时使用截断被除数将求和值推入其各自的组中。
代码:(Demo)