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

php合并二维数组相同的key

php合并二维数组相同的key

慕森王 2019-04-08 11:19:06
有个二维数组:$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贡献1799条经验 获得超9个赞

把@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-08
?
慕沐林林

TA贡献2016条经验 获得超9个赞

$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-08
  • 2 回答
  • 0 关注
  • 1695 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信