$arr1=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'),
);
$arr2=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-12', 'num' => '7'),
);怎么去变成
相同userid和data的合并求num的和
$arr1=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '11' ),
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '6' ),
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '8'),
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '10'),
'4' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '14'),
);
'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'),
);
$arr2=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-12', 'num' => '7'),
);怎么去变成
相同userid和data的合并求num的和
$arr1=array(
'0' => array ( 'userId' => 1,'date' => '2011-4-11', 'num' => '11' ),
'1' => array ( 'userId' => 2,'date' => '2011-4-12', 'num' => '6' ),
'2' => array ( 'userId' => 6,'date' => '2011-4-13', 'num' => '8'),
'3' => array ( 'userId' => 3,'date' => '2011-4-13', 'num' => '10'),
'4' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '14'),
);
解决方案 »
- Parse error: syntax error, unexpected $end in E:\wamp\www\leave_
- mysql创建表的字段时为什么不能用primary key和not null放在一起?
- 求解:ImagickDraw如何设置文字描边位移?
- 聊天室采用ajax轮询,如何避免数据重复或者遗漏?
- 多数据表查询问题,高手帮忙
- 请教一个显示“请等待”的问题
- php http_request请求得到的response
- 文件上传,的问题~~
- 我想开发一套酒店管理系统.!高手进 急 请帮忙
- 关于PHP中锁定表的问题
- 请问这个网站的首页动画是用什么技术实现的?
- Ajax对象 向 服务器发送数据请求的问题 新手求解答。
'4' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '14'。),
'5' => array ( 'userId' => 1,'date' => '2011-4-12', 'num' => '7'.。),
表示后面还有其他的键值而不能被合并。
这次写成函数形式
$arr1=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'),
);
$arr2=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-12', 'num' => '7'),
);function Finishing() {
foreach(func_get_args() as $arr) {
if(is_array($arr)) {
foreach($arr as $v) {
$k = $v['userId'].'_'.$v['date'];
if(! isset($r[$k]))
$r[$k] = $v;
else
$r[$k]['num'] += $v['num'];
}
}
}
return array_values($r);
}
print_r(Finishing($arr1, $arr2));
Array
(
[0] => Array
(
[userId] => 1
[date] => 2011-4-11
[num] => 11
) [1] => Array
(
[userId] => 2
[date] => 2011-4-12
[num] => 6
) [2] => Array
(
[userId] => 6
[date] => 2011-4-13
[num] => 8
) [3] => Array
(
[userId] => 3
[date] => 2011-4-13
[num] => 10
) [4] => Array
(
[userId] => 1
[date] => 2011-4-12
[num] => 14
))
'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'),
);
$arr2=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-12', 'num' => '7'),
);
function arrayMerge($array1,$array2){
$num = count($array1);
$newarr = array();
for($i=0;$i<$num;$i++){
if(!(strcasecmp($array1[$i]['userId'], $array2[$i]['userId'])||strcasecmp($array1[$i]['date'], $array2[$i]['date']))){
$newarr[$i]['userId'] = $array1[$i]['userId'];
$newarr[$i]['date'] = $array1[$i]['date'];
$newarr[$i]['num'] = $array1[$i]['num']+$array2[$i]['num'];
}
}
return $newarr;
}
print_r(arrayMerge($arr1,$arr2));
Array
(
[0] => Array
(
[userId] => 1
[date] => 2011-4-11
[num] => 11
) [1] => Array
(
[userId] => 2
[date] => 2011-4-12
[num] => 6
) [2] => Array
(
[userId] => 6
[date] => 2011-4-13
[num] => 8
) [3] => Array
(
[userId] => 3
[date] => 2011-4-13
[num] => 10
) [4] => Array
(
[userId] => 1
[date] => 2011-4-12
[num] => 14
))