本帖最后由 KindHacker 于 2011-08-26 12:19:20 编辑

解决方案 »

  1.   

    麻烦把函数给写一下吧 funciont convertArray($originArray){
        ......
        return $targetArray;
    }
      

  2.   

    $ar = Array
    (
        0 => Array
            (
                'AAA' =>'',
                'BBB' => 0
            ),    1 => Array
            (
                'AAA' => 'e',
                'BBB' => 20
            ),
        2 => Array
            (
                'AAA' => 'f',
                'BBB' => 10
            ),
        3 => Array
            (
                'AAA' => 'e',
                'BBB' => 80
            ),
        4 => Array
            (
                'AAA' => 'f',
                'BBB' => 50
            )
    );$tmp = array();
    foreach($ar as $v) {
       if (strlen($v['AAA']) > 0) {
          if (isset($tmp[$v['AAA']])) $tmp[$v['AAA']] += $v['BBB'];
          else $tmp[$v['AAA']] = $v['BBB'];
       }
    }
    $result = array();
    foreach($tmp as $k => $v) $result[] = array('AAA' => $k, 'BBB' => $v);
    echo '<pre>';
    print_r($result);/*
    Array
    (
        [0] => Array
            (
                [AAA] => e
                [BBB] => 100
            )
        [1] => Array
            (
                [AAA] => f
                [BBB] => 60
            )
    )
    */
      

  3.   

    //写成函数
    function convertArray($ar) {
    $tmp = array();
    $result = array();
    foreach($ar as $v) {
    if (strlen($v['AAA']) > 0) isset($tmp[$v['AAA']]) ? $tmp[$v['AAA']] += $v['BBB'] : $tmp[$v['AAA']] = $v['BBB'];
    }
    foreach($tmp as $k => $v) $result[] = array('AAA' => $k, 'BBB' => $v);
    return $result;
    }
      

  4.   


    $arr=array
    (
        0 => array
            (
                'AAA' =>'',
                'BBB' => 0
            ),    1 => array
            (
                'AAA' => 'e',
                'BBB' => 20
            ),
        2 => array
            (
                'AAA' => 'f',
                'BBB' => 10
            ),
        3 => array
            (
                'AAA' => 'e',
                'BBB' => 80
            ),
        4 => array
            (
                'AAA' => 'f',
                'BBB' => 50
            )
    );foreach($arr as $vl){
       if($vl[AAA]) $ar[]=$vl;  
    }
    //print_r($ar);
    foreach($ar as $v){
          if(!$tmp[$v[AAA]]){
              $tmp[$v[AAA]]=$v;
       }else{
             $tmp[$v[AAA]][BBB]+=$v[BBB];
       }  
    }
    print_r(array_values($tmp));
      

  5.   

    我自己实现了一种我更需要的答案
    funciont convertArray($originArray){
       $targetArray = array();
       foreach($originArray as $temp){
           if($temp['AAA'] != ''){
               if(!isset($targetArray[$temp['AAA']])){
                   $targetArray[$temp['AAA']] = 0;
               }
               $targetArray [$temp['AAA']] += $temp['BBB'];
           }
       }
       return $targetArray;
    }结果是
    Array
    (
        [e] => 100
        [f] => 60
    )其实这才是我最终要的结果
      

  6.   


    我自己实现了一种我更需要的答案
    funciont convertArray($originArray){
      $targetArray = array();
      foreach($originArray as $temp){
      if($temp['AAA'] != ''){
      if(!isset($targetArray[$temp['AAA']])){
      $targetArray[$temp['AAA']] = 0;
      }
      $targetArray [$temp['AAA']] += $temp['BBB'];
      }
      }
      return $targetArray;
    }结果是
    Array
    (
      [e] => 100
      [f] => 60
    )其实这才是我最终要的结果
      

  7.   

    //
    function convertArray($ar) {
        $tmp = array();
        foreach($ar as $v) if (strlen($v['AAA']) > 0) isset($tmp[$v['AAA']]) ? $tmp[$v['AAA']] += $v['BBB'] : $tmp[$v['AAA']] = $v['BBB'];
        return $tmp;
    }