本帖最后由 YuJingSheYing 于 2014-10-27 17:56:41 编辑

解决方案 »

  1.   

    我先来个<?php
    /**
     *
     * User: shikiliu
     * Date: 13-12-5
     */$arr = array(
        array(
            'user_id' => 100,
            'goods_id' => 10,
            'number' => 1,
        ),
        array(
            'user_id' => 102,
            'goods_id' => 10,
            'number' => 1,
        ),
        array(
            'user_id' => 102,
            'goods_id' => 10,
            'number' => 1,
        ),
        array(
            'user_id' => 102,
            'goods_id' => 10,
            'number' => 1,
        ),
    );
    $container = array();$result = array();foreach ($arr as $item) {    $key = $item['user_id'] . '_' . $item['goods_id'];    if (empty($container[$key])) {        $container[$key] = $item['number'];    }
        else {        $container[$key] += $item['number'];
        }
    }
    foreach ($container as $key => $item) {    list($user_id, $goods_id) = explode('_', $key);    $result[] = array('user_id' => $user_id, 'goods_id' => $goods_id, 'number' => $item);}var_export($result);array (
      0 => 
      array (
        'user_id' => '100',
        'goods_id' => '10',
        'number' => 1,
      ),
      1 => 
      array (
        'user_id' => '102',
        'goods_id' => '10',
        'number' => 3,
      ),
    )
      

  2.   

    $arr = array(
        array(
           'user_id' => 100,
           'goods_id' => 10,
           'number' => 1,
        ),  
        array(
           'user_id' => 102,
           'goods_id' => 10,
           'number' => 1,
        ),  
        array(
           'user_id' => 102,
           'goods_id' => 10,
           'number' => 1,
        ),  
        array(
           'user_id' => 102,
           'goods_id' => 10,
           'number' => 1,
        ),  
    );$res = array();
    foreach($arr as $item) {
      if(! isset($res[$item['user_id']])) $res[$item['user_id']] = $item;
      else {
        $res[$item['user_id']]['number'] += $item['goods_id'];
      }
    }
    print_r(array_values($res));
    Array
    (
        [0] => Array
            (
                [user_id] => 100
                [goods_id] => 10
                [number] => 1
            )    [1] => Array
            (
                [user_id] => 102
                [goods_id] => 30
                [number] => 21
            ))
      

  3.   


    $arr = array(
        array(
            'user_id' => 100,
            'goods_id' => 10,
            'number' => 1,
        ),
        array(
            'user_id' => 102,
            'goods_id' => 10,
            'number' => 1,
        ),
        array(
            'user_id' => 102,
            'goods_id' => 10,
            'number' => 1,
        ),
        array(
            'user_id' => 102,
            'goods_id' => 10,
            'number' => 1,
        ),
    );
    $item=array();
    foreach($arr as $k=>$v){
        if(!isset($item[$v['user_id']])){
            $item[$v['user_id']]=$v;
        }else{
            $item[$v['user_id']]['number']+=$v['number'];
        }
    }
    print_r($item);Array
    (
        [100] => Array
            (
                [user_id] => 100
                [goods_id] => 10
                [number] => 1
            )    [102] => Array
            (
                [user_id] => 102
                [goods_id] => 10
                [number] => 3
            ))
      

  4.   


    $arr = array(
        array(
           'user_id' => 100,
           'goods_id' => 10,
           'number' => 1,
        ),  
        array(
           'user_id' => 102,
           'goods_id' => 10,
           'number' => 1,
        ),  
        array(
           'user_id' => 102,
           'goods_id' => 10,
           'number' => 1,
        ),  
        array(
           'user_id' => 102,
           'goods_id' => 10,
           'number' => 1,
        ),  
    );$result = array();foreach($arr as $val){
    $key = $val['user_id'].'_'.$val['goods_id'];
    if(!isset($result[$key])){
    $result[$key] = $val;
    }else{
    $result[$key]['number'] += $val['number'];
    }
    }echo '<pre>';
    print_r(array_values($result));
    echo '</pre>';Array
    (
        [0] => Array
            (
                [user_id] => 100
                [goods_id] => 10
                [number] => 1
            )    [1] => Array
            (
                [user_id] => 102
                [goods_id] => 10
                [number] => 3
            ))