我想实现下面的效果 $result = array(
     100001=>array(
     'proc_id'=>102,
     'num'=>2,
     ),
     100002=>array(
     'proc_id'=>100,
     'num'=>3,
     )
     );
$new = array(   //新数组
      100001=>array(
              'proc_id'=>102,
      'num'=>2'
       )
      );
$new2 = array(   //新数组2
      100003=>array(
              'proc_id'=>103,
      'num'=>2'
       )
      );
//想实现的最终结果
$result = array(
     100001=>array(
     'proc_id'=>102,
     'num'=>4,
     ),
     100002=>array(
     'proc_id'=>100,
     'num'=>3,
     ),
              100003=>array(
     'proc_id'=>103,
     'num'=>3,
     )
     );
不知道说的清不清楚?

解决方案 »

  1.   

    $ar=array_combine(array_merge(array_keys($new),array_keys($new2)),array_merge($new,$new2));foreach($ar as $k=>$v){
        if(!$result[$k]){
         $result[$k] = $v;
    }else{
        $result[$k]['num'] += $v['num'];
    }
    }
    print_r($result);
      

  2.   

    1楼的方法如果是字符串的键值是可以的,但是对数字键值的行不通的,楼主可以用我下面这个方法
    $arr = $result+$new+$new2;
    print_r($arr);