<?php $array = array ( Array ("goods_id" => "001", "goods_num" => 5 ), Array ("goods_id" => "002", "goods_num" => 10 ), Array ("goods_id" => "003", "goods_num" => 3 ), Array ("goods_id" => "002", "goods_num" => 4 ) ); /** * 二维数组过滤相同元素 并计算和值 * 2011-07-18 */ function array_2d_count_key($_2dArray, $key, $key2) { $nArray = array (); foreach ( $_2dArray as $k ) { $ckey = $k [$key]; $cVal = $k [$key2]; $cArray = array ($ckey => $cVal ); if (array_key_exists ( $ckey, $nArray )) { $nArray [$ckey] = $cVal + $nArray [$ckey]; } else { $nArray [$ckey] = $cVal; } } return $nArray; } print_r ( array_2d_count_key ( $array, 'goods_id', 'goods_num' ) ); ?>