数据类型:
{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教程有兴趣的朋友有所帮助。
   
 
   