您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2026/3/26 17:23:37发布11次查看
将二维数组重新按条件重新生成新数组
现有数组
$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
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product