解决方案 »

  1.   

    $res = array();
    while($row=mssql_fetch_array($query)){
        if(! isset($res[$row['A'])) $res[$res[$row['A']] = $row;
        else foreach($row as $k=>$v) {
           if($k != 'A') $res[$row['A']] += $v;
        }
    }
      

  2.   

    厉害,
    //$res用于存放一组数值
    $res = array();
    while($row=mssql_fetch_array($query)){
    //如果$row['A']不包含于$res中
        if(! isset($res[$row['A']))
    {
    //将$row存入$res中
     $res[$res[$row['A']] = $row;
    }
     else {//如果存在于$res中
    foreach($row as $k=>$v) {
    //将除了A以外的属性,都相加
           if($k != 'A') 
    {
    $res[$row['A']] += $v;
    }
        }
    }
    }
    不知道这样分析对不对 先试试
      

  3.   

    厉害,
    //$res用于存放一组数值
    $res = array();
    while($row=mssql_fetch_array($query)){
    //如果$row['A']不包含于$res中
        if(! isset($res[$row['A']))
    {
    //将$row存入$res中
     $res[$res[$row['A']] = $row;
    }
     else {//如果存在于$res中
    foreach($row as $k=>$v) {
    //将除了A以外的属性,都相加
           if($k != 'A') 
    {
    $res[$row['A']] += $v;
    }
        }
    }
    }
    不知道这样分析对不对 先试试 两种处理方式是一样的,用如果A是主键那么用一句sql应该可以直接搞定insert into table(A,B,C,D) values('x',1,2,3) ON DUPLICATE KEY UPDATE  B=B+1,C=C+2,D=D+3 应该是可以实现你那个需求的
      

  4.   

    我把您那个改造了下 有的不明白请指教/**
    *//$ST为待匹配的数组
     * $ST=array('SE90','SE47','SE4L','SE42','SH43','SH4M','SH44','SE4J','SN4L','SN57','SN5G','SN91',
    'SN92','SS45','SE4D','SS11','SS48','ST40','SW46','SW44','SW40','SW47','SW4A','SE12','SE4C','SE47','SH4N','SN4N'
    ,'SS14','WH5E','SC4H','SC54','SC55','SE90','SE5N','SE97','SE9W','WH49','SH4N','SN91','SW4A','SW4K','SW12'
    ,'SN92','SS4F','WS4Q','ST48','SW11');
    $temp=array();
    $items = array();
     * **/
    while($row=mssql_fetch_array($query)){
     //如果不存在于数组中则直接放入$items
       // if(! isset($ST[$row['dbno_bi']])){
     if(!in_array($row['dbno_bi'], $ST)){
         array_push($items, $row);
        }else {
        //$temp临时存放$row['dbno_bi']存在于数组中的$row
        //如果是第一次遇到这样的row则放入临时数组中
        if(!isset($row['dbno_bi'],$temp[$row['dbno_bi']])){
         array_push($temp, $row);
        }else{
        //否则将数字栏位的值相加。 问题怎么清除第二次出现的row? 怎么将temp的结果放入$items中
         foreach($row as $k=>$v) {
         //将除了文字以外的属性,都相加
         if($k != 'dbno_bi'||$k !='names_bi'||$k!='qsq'||$k!='class2'||$k!='incity'||$k!='cwnames'||$k!='Achivement')
         {
         $items[$row[$k]] += $v;
         }
         }
          
        }
        }