需要处理的数组
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
)
)
公共方法
/**************** @function二维数组中子数组的某一键相等,其余键值求和* @Param:* $array :传入参数* $mainKey :指定键* $otherKey :需要求和的键,一维数组* $num :需要求和的键的数量* @Return: $tempArr返回结果数组***************/functionarray2_key_sum($array,$mainKey,$otherKey,$num){
$item=array();
foreach($arrayas$k=>$v){
if(!isset($item[$v[$mainKey]])){
$item[$v[$mainKey]]=$v;
}else{
for($i =0;$i
$item[$v[$mainKey]][$otherKey[$i]]+=$v[$otherKey[$i]];
}}
}
return$item;
}
调用公共方法
$orderTotal =array2_key_sum($orderTotal,'uid',array('price','earnings'),2);
处理后的数组
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
)
)
备注:
1、 如果需要处理的数组有空值,则用
$orderWeek =array_filter($orderWeek);
2、 如果想要给所得数组的键从0开始
$orderWeek =array_values($orderWeek);