数据类型:
{game_id:111,type:2,num:504},{game_id:111,type:6,num:8154},{game_id:111,type:41,num:3426},{game_id:111,type:42,num:45},{game_id:111,type:43,num:1873}
需求:
把type=41 42 42的num相加 type 1 10相加
结果:
{game_id:111,type:2,num:504},{game_id:111,type:6,num:8154},{game_id:111,type:41,num:5344}
code:
$str = '{retcode:0,retmsg:成功,data:[{game_id:111,type:2,num:504},{game_id:111,type:6,num:8154},{game_id:111,type:41,num:3426},{game_id:111,type:42,num:45},{game_id:111,type:43,num:1873},{game_id:119,type:1,num:38},{game_id:119,type:2,num:381},{game_id:119,type:6,num:189},{game_id:119,type:10,num:21},{game_id:120,type:2,num:31},{game_id:120,type:6,num:291},{game_id:120,type:41,num:90},{game_id:120,type:43,num:49},{game_id:127,type:1,num:9},{game_id:127,type:2,num:111},{game_id:127,type:6,num:60},{game_id:129,type:1,num:11},{game_id:129,type:2,num:11},{game_id:129,type:6,num:48},{game_id:129,type:10,num:2},{game_id:130,type:6,num:1},{game_id:137,type:2,num:1},{game_id:139,type:2,num:1387},{game_id:139,type:6,num:3858},{game_id:139,type:10,num:2358},{game_id:142,type:2,num:32},{game_id:142,type:6,num:948},{game_id:142,type:41,num:330},{game_id:142,type:42,num:3},{game_id:142,type:43,num:47},{game_id:156,type:2,num:11436},{game_id:156,type:6,num:38135},{game_id:156,type:10,num:22170},{game_id:165,type:6,num:6},{game_id:165,type:41,num:3},{game_id:165,type:43,num:1},{game_id:50,type:2,num:3},{game_id:8f093ab4ad19a509208a8104605c6e42,type:2,num:281},{game_id:92,type:1,num:26},{game_id:92,type:2,num:186},{game_id:92,type:6,num:153},{game_id:94,type:1,num:538},{game_id:94,type:2,num:3357},{game_id:94,type:6,num:2847},{game_id:94,type:10,num:74}]}';
$aaa = json_decode($str, true);$data = $aaa['data'];$new_array = array();$array1 = array(41,42,43);$array2 = array(1,10);foreach($data as $v){ if(in_array($v['type'], $array2)){ if(isset($new_array[$v['game_id']][$array2[0]]['num'])){ $new_array[$v['game_id']][$array2[0]]['num'] += $v['num']; } else { $new_array[$v['game_id']][$array2[0]]['num'] = $v['num']; } }elseif (in_array($v['type'], $array1)) { if(isset($new_array[$v['game_id']][$array1[0]]['num'])){ $new_array[$v['game_id']][$array1[0]]['num'] += $v['num']; } else { $new_array[$v['game_id']][$array1[0]]['num'] = $v['num']; } }else{ if(isset($new_array[$v['game_id']][$v['type']]['num'])){ $new_array[$v['game_id']][$v['type']]['num'] += $v['num']; } else { $new_array[$v['game_id']][$v['type']]['num'] = $v['num']; } }}foreach($new_array as $k1 => $v1) { foreach($v1 as $k2 => $v2) { $new[$k1][] = array( 'game_id' => $k1, 'type' => $k2, 'num' => $v2['num'] ); }}
以上就介绍了 php 根据某数组key计算和,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。