欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

将二维数组从新按条件重新生成新数组

程序员文章站 2024-01-31 09:17:52
...
将二维数组重新按条件重新生成新数组
现有数组
$arr=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '2' ),
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' ),
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')
'4' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '7')
'5' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')
);
如何将这个数组重新计算生成为
相同userid和data的合并求num的和
生成结果为
$arr=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '9' ),
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' ),
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4')
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5')
'4' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7')
);
------解决方案--------------------
$arr=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '2' ),
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '3' ),
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '4'),
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '5'),
'4' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '7'),
'5' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7'),
);
foreach($arr as $v) {
if(! $r[$v['userId'].'_'.$v['date']])
$r[$v['userId'].'_'.$v['date']] = $v;
else
$r[$v['userId'].'_'.$v['date']]['num'] += $v['num'];
}
print_r(array_values($r));

Array
(
[0] => Array
(
[userId] => 1
[date] => 2011-4-11
[num] => 9
)

[1] => Array
(
[userId] => 2
[date] => 2011-4-12
将二维数组从新按条件重新生成新数组

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频