【发布时间】:2019-08-10 06:01:31
【问题描述】:
我有这个数组:
$result = [
0 => [
category => 'Solution',
name => 'Name1',
value1 => 20
value2 => 21
],
1 => [
category => 'Solution',
name => 'Name2',
value1 => 30,
value2 => 31
],
2 => [
category => 'Solution1',
name => 'Name3',
value1 => 40,
value2 => 41
]
]
我想得到一个数组:
$new_array = [
0 => [
name => 'Solution',
value1 => 50 // sum of array with key = 0 and key = 1
value2 => 52
],
1 => [
name => 'Name1'
value1 => 20,
value2 => 21
],
2 => [
name => 'Name2',
value1 => 30,
value2 => 31
],
3 => [
name => 'Solution1',
value1 => 40,
value2 => 41
],
4 => [
name => 'Name3',
value1 => 40,
value2 => 41
]
]
我试过这样:
private function groupByProductSuperCategory($datas)
{
$return = [];
foreach ($datas as $data) {
$return[$data['category']][$data['name']] = array_sum(array_column('category', $data);
}
return $return;
}
这个想法是首先按类别计算所有总和值,然后像另一个数组一样放入名称中的值。你知道怎么做吗?请帮帮我。
【问题讨论】:
-
您的输出似乎没有很好的结构。也许将它们放在一个不同的数组中,从而为您提供总和详细信息?
-
此数据是否源自 SQL 数据库?如果是这样,您可能最好编写一个 SQL 查询来为您提供数据的 SUM,然后改用它。