有个二维数组:
$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)
);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把 @mot 的答案补完优雅一下:
$data = array();
foreach ($items as $v) {
$p = $v['period'];
if(array_key_exists($p, $data)){
$data[$p]['num'] += $v['num'];
}else{
$data[$p] = array('num'=>$v['num'],'period'=>['period']);
}
}
return $data = array_values($data);
}
感觉这样可能简单点。