现有数组如下:Array
(
    [0] => Array
        (
            [item] => 上衣
              [num] => 10
            [sku] => 101012
        )    [1] => Array
        (
            [item] => 裤子
              [num] => 15
            [sku] => 201012
        )    [2] => Array
        (
            [item] => 上衣
              [num] => 16
            [sku] => 101012
        )    [3] => Array
        (
            [item] => 上衣
              [num] => 11
            [sku] => 232410
        )
)
需要把item && sku相同的元素中的num相加,得到下面的数组,求高手给出代码和思路。Array
(
    [0] => Array
        (
            [item] => 上衣
              [num] => 26
            [sku] => 101012
        )    [1] => Array
        (
            [item] => 裤子
              [num] => 15
            [sku] => 201012
        )    [2] => Array
        (
            [item] => 上衣
              [num] => 11
            [sku] => 232410
        )
)

解决方案 »

  1.   

    $arr=Array
    (
        '0' => Array
            (
                'item' => '上衣',
                  'num' => 10,
                'sku' => 101012
            ),    '1' => Array
            (
                'item' => '裤子',
                  'num' => 15,
                'sku' => 201012
            ),    '2' => Array
            (
                'item' => '上衣',
                  'num' => 16,
                'sku' => 101012
            ),    '3' => Array
            (
                'item' => '上衣',
                  'num' => 11,
                'sku' => 232410
            )
    );
    $ar=array();
    foreach($arr as $v){
          if(!$ar[$v['item'].'_'.$v['sku']]) 
                  $ar[$v['item'].'_'.$v['sku']]=$v;
      else
                      $ar[$v['item'].'_'.$v['sku']]['num']+=$v['num'];      
    }
    print_r(array_values($ar));