php把三维数组中在第二层的条件下,把第三层的有相同字段的合并成一个,把其中一个字段的值相加
本文介绍了php把三维数组中在第二层的条件下,把第三层的有相同字段的合并成一个,把其中一个字段的值相加的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
php把三维数组中在第二层的条件下,把第三层的有相同字段的合并成一个,把其中一个字段的值相加!
2 =>
array (size=4)
0 =>
array (size=5)
'id' => string '1' (length=1)
'username' => string 'ppp' (length=3)
'pid' => string '2' (length=1)
'turns' => string '100' (length=3)
'use_time' => string '20161227' (length=8)
1 =>
array (size=5)
'id' => string '2' (length=1)
'username' => string 'ppp' (length=3)
'pid' => string '2' (length=1)
'turns' => string '68' (length=2)
'use_time' => string '20161228' (length=8)
2 =>
array (size=5)
'id' => string '5' (length=1)
'username' => string 'ppp' (length=3)
'pid' => string '2' (length=1)
'turns' => string '10' (length=2)
'use_time' => string '20161227' (length=8)
3 =>
array (size=5)
'id' => string '6' (length=1)
'username' => string 'ppp' (length=3)
'pid' => string '2' (length=1)
'turns' => string '20' (length=2)
'use_time' => string '20161226' (length=8)
1 =>
array (size=1)
0 =>
array (size=5)
'id' => string '7' (length=1)
'username' => string 'ppp' (length=3)
'pid' => string '1' (length=1)
'turns' => string '30' (length=2)
'use_time' => string '20161227' (length=8)
解决方案
$arr=[
2=>[
['id'=>1,'user_time'=>'20161228','pid'=>2,'turns'=>1],
['id'=>2,'user_time'=>'20161227','pid'=>2,'turns'=>1],
['id'=>3,'user_time'=>'20161228','pid'=>2,'turns'=>10],
],
1=>[
['id'=>1,'user_time'=>'20161228','pid'=>1,'turns'=>10],
['id'=>2,'user_time'=>'20161227','pid'=>1,'turns'=>1],
['id'=>3,'user_time'=>'20161227','pid'=>1,'turns'=>10],
],
];
$result=[];
foreach($arr as $k=>$v){
$res=[];
foreach($v as $key=>$value){
if(isset($res[$value['user_time']])){
$res[$value['user_time']]['turns']+=$value['turns'];
}else{
$res[$value['user_time']]=$value;
}
}
$result[$k]=array_values($res);
}
print_r($result);
[
2 => [
[
"id" => 1,
"user_time" => "20161228",
"pid" => 2,
"turns" => 11
],
[
"id" => 2,
"user_time" => "20161227",
"pid" => 2,
"turns" => 1
]
],
1 => [
[
"id" => 1,
"user_time" => "20161228",
"pid" => 1,
"turns" => 10
],
[
"id" => 2,
"user_time" => "20161227",
"pid" => 1,
"turns" => 11
]
]
]
这篇关于php把三维数组中在第二层的条件下,把第三层的有相同字段的合并成一个,把其中一个字段的值相加的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文