为了账号安全,请及时绑定邮箱和手机立即绑定

php合并二维数组相同的key

php合并二维数组相同的key

白猪掌柜的 2019-04-09 20:25:43
有个二维数组:$arr=array(array('num'=>5,'period'=>3),array('num'=>10,'period'=>3),array('num'=>15,'period'=>9));对period相同的值的数组,对num求和,怎么处理变成:$arr=array(array('num'=>15,'period'=>3),array('num'=>15,'period'=>9));
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

把@mot的答案补完优雅一下:
$arr=array(
array('num'=>5,'period'=>3),
array('num'=>10,'period'=>3),
array('num'=>15,'period'=>9)
);
$temp=array();
foreach($arras$item){
list($n,$p)=array_values($item);
$temp[$p]=array_key_exists($p,$temp)?$temp[$p]+$n:$n;
}
$arr=array();
foreach($tempas$p=>$n)
$arr[]=array('num'=>$n,'period'=>$p);
print_r($arr);
                            
查看完整回答
反对 回复 2019-04-09
?
jeck猫

TA贡献1909条经验 获得超7个赞

$tmp=array();
foreach($arras$one)
{
if($tmp[$one['period']])
$tmp[$one['period']]=$tmp[$one['period']]+$one['num'];
else
$tmp[$one['period']]=$one['num'];
}
$arr=array();
foreach($tmpas$key=>$value)
$arr[]=array('num'=>$value,'period'=>$key);
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 410 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号