在数组的每个列中,列的总和数组值3级
我正在尝试在多维数组列内的列上使用array_sum()
。
例如:我有一个看起来像这样的数组:
$array = [
[['value' => 1100], ['value' => 1000], ['value' => 3000]],
[['value' => 1200], ['value' => 2000], ['value' => 2000]],
[['value' => 1300], ['value' => 4000], ['value' => 1000]],
];
我尝试了:
$arr = [];
foreach($array as $point){
$arr[] = array_sum(array_column($array, $point[0]['value']));
}
print_r($arr);
但是我期望此输出:
[['value'=> 3600],['value'=> 7000],['value'=> 6000]]
或更简单:[3600,7000,6000]
I'm trying to use array_sum()
on columns within columns of a multidimensional array.
For eg: I have an array that looks like this:
$array = [
[['value' => 1100], ['value' => 1000], ['value' => 3000]],
[['value' => 1200], ['value' => 2000], ['value' => 2000]],
[['value' => 1300], ['value' => 4000], ['value' => 1000]],
];
I tried with:
$arr = [];
foreach($array as $point){
$arr[] = array_sum(array_column($array, $point[0]['value']));
}
print_r($arr);
but I'm expecting this output:
[['value' => 3600], ['value' => 7000], ['value' => 6000]]
Or more simply: [3600, 7000, 6000]
Tested here: https://onecompiler.com/php/3y3mxqky9
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以按这样的列来概括您的专栏:
You can sum your columns doing like this:
由于您希望获得垂直和水平的总和,因此您使用的Array_column样式无法正常工作。您只需使用以下两个嵌套循环即可实现此目标:
在线demo
Since you wish to have the sum vertically and not horizontally, the array_column style you used won't work. You can simply achieve this with 2 nested loops like below:
Online Demo
转置输入数组,然后隔离并总和
value
数据列。$ array
toarray_map()
的variadic发行是换零件。换句话说,
array_map(fn(... $ col)=> $ col,... $ array)
将数据行转换为数据列。代码:( demo )
输出:
Transpose your input array, then isolate and sum the
value
column of data.The variadic offering of
$array
toarray_map()
is the transposing part.In other words,
array_map(fn(...$col) => $col, ...$array)
converts rows of data into columns of data.Code: (Demo)
Output: