解决方案 »

  1.   

    $out = array();
    foreach ($array as $key => $value) {
    foreach ($value['general_data'] as $k => $v) {

    $out[$v['uid']][] += $v['eff'];

    }
    }
    foreach ($out as $key => $value) {
    $out[$key] = array_sum($value);
    }
    var_dump($out);
      

  2.   

    $out = array();
    foreach ($array as $key => $value) {
    foreach ($value['general_data'] as $k => $v) {

    $out[$v['uid']] += $v['eff'];

    }
    }
    var_dump($out);exit;
      

  3.   

    怎样能让数组变成0=>array('uid'=>30015,'eff'=> effs相加所得的数 ),这个样子呢?
      

  4.   

    $res = array();
    foreach ($array as $key => $value) {
      foreach ($value['general_data'] as $k => $v) {
        $res[$v['uid']]['uid'] = $v['uid'];
        @$res[$v['uid']]['eff'] += $v['eff'];
      }
    }
    print_r(array_values($res));Array
    (
        [0] => Array
            (
                [uid] => 30015
                [eff] => 58
            )    [1] => Array
            (
                [uid] => 30566
                [eff] => 33
            )
      ..........
      

  5.   

    $i = 0;
    $arr = array();
    foreach ($out as $key => $value) {
    $arr[$i]['uid'] = $key;
    $arr[$i]['eff'] = $value;
    $i++;
    }
    var_dump($arr);
      

  6.   

    $result = array();
    foreach($array as $val){
    foreach($val['general_data'] as $item){
    if(isset($result[$item['uid']])){
    $result[$item['uid']] += $item['eff'];
    }else{
    $result[$item['uid']] = $item['eff'];
    }
    }
    }
    $newArray = array();
    foreach($result as $key=>$val){
    array_push($newArray, array('uid'=>$key,'eff'=>$val));
    }
    var_dump($newArray);俺是来蹭分的