php索引数组相等,php二维数组中子数组的某一键相等,其余键值求和
需要處理的數組
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);
總結
以上是生活随笔為你收集整理的php索引数组相等,php二维数组中子数组的某一键相等,其余键值求和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 账期30天和月结的区别
- 下一篇: 资产负债表超过20原因怎么写