PHP 循环出来的数组,我现在想进行合并 并且相加。

$new_arr[]=array("new_id"=>$arr[$key][$keys],"new_value"=>$newvalue);在foreach内这个是我定义的... $new_arr[]=array("new_id"=> $arr[$key][$keys],"new_value"=>$newvalue);

在foreach内这个是我定义的数组,

我在循环外,
var_dump($new_arr); 后 所出现的结果是,

array(4) {
[0]=> array(2) { ["new_id"]=> string(1) "1" ["new_value"]=> float(0.5) }
[1]=> array(2) { ["new_id"]=> string(1) "2" ["new_value"]=> float(0.5) }
[2]=> array(2) { ["new_id"]=> string(1) "1" ["new_value"]=> int(1) }
[3]=> array(2) { ["new_id"]=> string(1) "1" ["new_value"]=> float(0.5) }
[4]=> array(2) { ["new_id"]=> string(1) "6" ["new_value"]=> float(0.5) }
}
我现在想实现的最终结果是这样的:

array(2) { ["new_id"]=> string(1) "1" ["new_value"]=> int(2) }
array(2) { ["new_id"]=> string(1) "2" ["new_value"]=> float(0.5)}
array(2) { ["new_id"]=> string(1) "6" ["new_value"]=> float(0.5)}
// 解释一下: 就是new_id 这一列 把所有 相同的值 合并到一起, 并且 对应的
new_value 这一列进行相加。

希望大家能帮我解答, 今天晚上我会一直在线等。 很急, 谢谢大家了。
展开
 我来答
天空蓝蓝2022
2012-06-14
知道答主
回答量:35
采纳率:0%
帮助的人:19.4万
展开全部
兄弟,不多解释,直接给你贴代码,亲自测试过。

$new = array();
foreach ($arr as $k => $v) {
if (isset($new["{$v['new_id']}"])) {
$new["{$v['new_id']}"] += $v['value'];
} else {
$new["{$v['new_id']}"] = $v['value'];
}
}
$new_arr = array();
$key = 0;
foreach ($new as $k1 => $v1) {
$new_arr[$key]['new_id'] = $k;
$new_arr[$key]['new_value'] = $v1;
$key++;
}

echo '<pre>';
print_r($new_arr);
echo '</pre>';
Zjmainstay
2012-06-16 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
1楼兄弟怎么不这么写呢?
$new = array();
foreach ($new_arr as $key => $value) {
if(!isset($new[$value['new_id']]['new_id'])) {
$new[$value['new_id']]['new_id'] = $value['new_id'];
$new[$value['new_id']]['new_value'] = $value['new_value'];
}else {
$new[$value['new_id']]['new_value'] += $value['new_value'];
}
}
//var_dump($new);
/*
array(3) { [1]=> array(2) { ["new_id"]=> int(1) ["new_value"]=> float(2) }
[2]=> array(2) { ["new_id"]=> int(2) ["new_value"]=> float(0.5) }
[6]=> array(2) { ["new_id"]=> int(6) ["new_value"]=> float(0.5) }
}
//*/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mzx846047144
2012-06-15
知道答主
回答量:78
采纳率:0%
帮助的人:24.4万
展开全部
能不能把arr那个数组发过来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式