我有这样的一个数组,不知道怎么来统计,A\B\c的分数
Array
(
    [0] => Array
        (
            [0] => A
            [1] => A因素
            [2] => 1 //A因数的分数
        )
 
    [1] => Array
        (
            [0] => A
            [1] => A因素
            [2] => 3
        )
 
    [2] => Array
        (
            [0] => A
            [1] => A因素
            [2] => 6
        )
 
    [3] => Array
        (
            [0] => A
            [1] => A因素
            [2] => 6
        )
 
    [4] => Array
        (
            [0] => A
            [1] => A因素
            [2] => 1
        )
 
    [5] => Array
        (
            [0] => B
            [1] => B因素
            [2] => 1
        )
 
    [6] => Array
        (
            [0] => B
            [1] => B因素
            [2] => 2
        )
 
    [7] => Array
        (
            [0] => B
            [1] => B因素
            [2] => 3
        )
 
    [8] => Array
        (
            [0] => B
            [1] => B因素
            [2] => 1
        )
 
    [9] => Array
        (
            [0] => C
            [1] => C因素
            [2] => 1
        )
 
    [10] => Array
        (
            [0] => C
            [1] => C因素
            [2] => 5
        )
 
)

解决方案 »

  1.   

    此处的A\B\c不固定,有可能是D\E\F(是动态的)
      

  2.   

    给一个最傻的办法:$f=Array('A'=>0,'B'=>0,'C'=>0,);
    foreach($arr as $k =>$v){
       if(isset($v['A'])){
         $f['A']= $f['A']+$v['A'];
       }
       if(isset($v['B'])){
         $f['B']= $f['B']+$v['B'];
       }
       if(isset($v['C'])){
         $f['C']= $f['C']+$v['C'];
       }}
    ABC的 分数都在$f这个里面了。
      

  3.   

    这个A\B\c不是固定的,是动态的,有可能是D\E\f哦!!说白了,不知道他生成的是A还是B
      

  4.   

    $f=Array('A'=>0,'B'=>0,'C'=>0,‘D’,.....);//你的动态要统计的数据
    foreach($arr as $k =>$v){
      foreach($f as $k2 =>$v2){
        if(isset($v[$k2])){
           $f[$k2]= $f[$k2]+$v2;
         }
      }
    }
      ABC的 分数都在$f这个里面了。continue
      

  5.   

    $f=Array('A'=>0,'B'=>0,'C'=>0,‘D’,.....);//你的动态要统计的数据
    foreach($arr as $k =>$v){
       foreach($f as $k2 =>$v2){
        if(isset($v[$k2])){
          $f[$k2]= $f[$k2]+$v2;
          continue
        }
       }
    }
     只要你把 未知的动态 ABC变成类似上面的数据就OK了
      

  6.   

    $ar = array(
    array('A','A因素',1),
    array('A','A因素',3),
    array('A','A因素',6),
    array('A','A因素',6),
    array('A','A因素',1),
    array('B','B因素',1),
    array('B','B因素',2),
    array('B','B因素',3),
    array('B','B因素',1),
    array('C','C因素',1),
    array('C','C因素',5)
    );$result = array();
    foreach($ar as $v) {
    if (array_key_exists($v[0], $result)) $result[$v[0]] += $v[2];
    else $result[$v[0]] = $v[2];
    }
    print_r($result);Array
    (
        [A] => 17
        [B] => 7
        [C] => 6
    )