我需要按第一列值(id 列)对索引数组的索引数组中的数据进行分组。在每个组中,我需要找到第二列的总和并找到第三列的总和。
示例输入:
[
[111, 5, 3],
[111, 3, 7],
[111, 2, 1],
[222, 5, 3],
]
期望的结果:
[
111 => [10, 11]
222 => [5, 3]
]
最佳答案
您必须使用循环手动执行此操作。像这样的东西应该有效:
$result = array();
foreach( $input as $row) {
$id = array_shift( $row);
foreach( $row as $key => $value) {
$result[ $id ][ $key ] =
( isset( $result[ $id ][ $key ]) ?
$result[ $id ][ $key ] + $value :
$value
);
}
}
输出:
array(2) {
[111]=>
array(2) {
[0]=>
int(10)
[1]=>
int(11)
}
[222]=>
array(2) {
[0]=>
int(5)
[1]=>
int(3)
}
}
关于php - 按一列对二维数组数据进行分组,并对每组中的其他列进行求和(分别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006797/