有个二维数组:$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);
慕沐林林
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);
添加回答
举报
0/150
提交
取消