有个二维数组:$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);

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);
添加回答
举报
0/150
提交
取消