array( 
array('goods_id'=>1888,'provider_id'=>8818,'in_number'=>20,'out_number'=>30), 
array('goods_id'=>1888,'provider_id'=>8818,'in_number'=>10,'out_number'=>20), 
array('goods_id'=>198,'provider_id'=>894,'in_number'=>10,'out_number'=>20) ) 
按照goods_id,provider_id 相同的in_number,out_number求和 得到新数组

解决方案 »

  1.   


    $arr = array( 
    array('goods_id'=>1888,'provider_id'=>8818,'in_number'=>20,'out_number'=>30), 
    array('goods_id'=>1888,'provider_id'=>8818,'in_number'=>10,'out_number'=>20), 
    array('goods_id'=>198,'provider_id'=>894,'in_number'=>10,'out_number'=>20));foreach($arr as $k=>$v){
    $result[$v["goods_id"]]["in_number"] += $v["in_number"];
    $result[$v["goods_id"]]["out_number"] += $v["out_number"];
    }print_r($result);
      

  2.   

    修改一点2楼的。$result[$v["goods_id"].$v["provider_id"]]["in_number"] += $v["in_number"];
    $result[$v["goods_id"].$v["provider_id"]]["out_number"] += $v["out_number"];
      

  3.   

    哦 没有看到还需要provide_id 楼上的这样写有点问题哈goods_id=123 provide_id=456
    和goods_id=1234 provide_id=56 不一样 但是你这样写就一样了
    $result[$v["goods_id"]."-".$v["provide_id"]]["in_number"]...用goods_id-provide_id 来做key