首页 >后端开发 >php教程 > 正文

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

原创2016-06-13 12:59:410307
将二维数组重新按条件重新生成新数组
现有数组
$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
php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:nbsp gt userId array date
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    php中文网

    认证0级讲师

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类