php 合并一个二维数组相同项,数量则相加

$arr = array(
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 1,
),
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 2,
),
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 2,
),
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 2,
),
);
理想结果:
$arr = array(
array(
'user_id'=> 100,
'goods_id' => 10,
'number' => 7,
),

);

$arr = array(
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 1,
    ),
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 2,
    ),
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 2,
    ),
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 2,
    ),
);
$item=array();
foreach($arr as $k=>$v){
    if(!isset($item[$v['user_id']])){
        $item[$v['user_id']]=$v;
    }else{
        $item[$v['user_id']]['number']+=$v['number'];
    }
}
print_r($item);

追问

太棒了.将usre_id看成唯一,很好的思路.谢谢.

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-27
$arr = array(
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 1,
    ),
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 2,
    ),
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 2,
    ),
    array(
       'user_id' => 100,
       'goods_id' => 10,
       'number' => 2,
    ),
);
$b=array();
foreach($arr as $k=>$v){
    foreach($v as $k_k=>$v_v){
        if($k_k=='number'){
            @$b[$k_k]=$b[$k_k]+$v_v;
        }else{
           $b[$k_k]=$v_v; 
        }
    }
}
print_r($b);

第2个回答  2014-10-27
的for(int i = 0; I <3;我+ +)
为(INT J = 0;<3; J ++)
{
INT R =兰特(8-I * 3 -j); //函数产生的随机数,对于不同语种
整型临时=一[I] [j]的不同;
一个[I] [j]的一个= [(8- r)的%3] [(8 -r)/ 3]。
一[(8- r)的%3] [(8-R)/ 3] =温度;
}
相似回答