$arr = array(
array('Id' => '1', 'type' => 'app', 'num' =>'1'),
array('Id' => '2', 'type' => 'val', 'num' =>'3'),
array('Id' => '2', 'type' => 'val', 'num' =>'4'),
array('Id' => '3', 'type' => 'org', 'num' =>'5'),
);需要转换成$arr = array(
array('Id' => '1', 'type' => 'app', 'num' =>'1'),
array('Id' => '2', 'type' => 'val', 'num' =>'7'),
array('Id' => '3', 'type' => 'org', 'num' =>'5'),
);
即相同Id和type的数组合并
array('Id' => '1', 'type' => 'app', 'num' =>'1'),
array('Id' => '2', 'type' => 'val', 'num' =>'3'),
array('Id' => '2', 'type' => 'val', 'num' =>'4'),
array('Id' => '3', 'type' => 'org', 'num' =>'5'),
);$sum = array();
foreach($arr as $row) {
$group = $row['Id'] . ',' . $row['type'];
if(! isset($sum[$group])) $sum[$group] = $row;
else $sum[$group]['num'] += $row['num'];
}print_r(array_values($sum));Array
(
[0] => Array
(
[Id] => 1
[type] => app
[num] => 1
) [1] => Array
(
[Id] => 2
[type] => val
[num] => 7
) [2] => Array
(
[Id] => 3
[type] => org
[num] => 5
))
select Id, type, sum(num) as num from tbl_name group by Id, type