須要處理的數組數組
Array ( [0] => Array ( [uid] => 1 [price] => 85.00 [earnings] => 40.00 ) [1] => Array ( [uid] => 8 [price] => 56.00 [earnings] => 31.00 ) [2] => Array ( [uid] => 15 [price] => 56.00 [earnings] => 31.00 ) [3] => Array ( [uid] => 15 [price] => 56.00 [earnings] => 31.00 ) [4] => Array ( [uid] => 21 [price] => 180.00 [earnings] => 85.00 ) [5] => Array ( [uid] => 21 [price] => 60.00 [earnings] => 35.00 ) [6] => Array ( [uid] => 231 [price] => 60.00 [earnings] => 35.00 ) )
公共方法ui
/*************** * @function 二維數組中子數組的某一鍵相等,其他鍵值求和 * @Param: * $array : 傳入參數 * $mainKey : 指定鍵 * $otherKey : 須要求和的鍵,一維數組 * $num : 須要求和的鍵的數量 * @Return: $tempArr 返回結果數組 ***************/ function array2_key_sum($array,$mainKey,$otherKey,$num){ $item=array(); foreach($array as $k=>$v){ if(!isset($item[$v[$mainKey]])){ $item[$v[$mainKey]]=$v; }else{ for ($i = 0;$i < $num;$i++){ $item[$v[$mainKey]][$otherKey[$i]]+=$v[$otherKey[$i]]; } } } return $item; }
調用公共方法spa
$orderTotal = array2_key_sum($orderTotal,'uid',array('price','earnings'),2);
處理後的數組it
Array ( [1] => Array ( [uid] => 1 [price] => 85.00 [earnings] => 40.00 ) [8] => Array ( [uid] => 8 [price] => 56.00 [earnings] => 31.00 ) [15] => Array ( [uid] => 15 [price] => 168 [earnings] => 62 ) [21] => Array ( [uid] => 21 [price] => 300 [earnings] => 120 ) [231] => Array ( [uid] => 231 [price] => 60.00 [earnings] => 35.00 ) )
備註:io
一、 若是須要處理的數組有空值,則用function
$orderWeek = array_filter($orderWeek);
二、 若是想要給所得數組的鍵從0開始foreach
$orderWeek = array_values($orderWeek);