_getMysql($targetId); $data = array(); $survivalTime = 0; $sameTimes = 0; $sessionChgTimes = 0; { $rows = SqlHelper::ormSelect( $conn, 't_battle_record', array( 'account_id' => $targetId ) ); foreach ($rows as $row) { $reqObj = json_decode($row['request'], true); $reqObj['start_time'] = $reqObj['game_time'] - $reqObj['alive_time']/1000; $survivalTime += $reqObj['alive_time']/1000; array_push($data, $reqObj); } } usort($data, function ($a, $b) { return $a['start_time'] < $b['start_time'] ? -1 : 1; }); $lastSessionId = ''; { for ($i = 0; $i < count($data); ++$i){ if ($i + 1 >= count($data)) { break; } if ($data[$i]['start_time'] + $time < $data[$i + 1]['start_time']) { ++$i; ++$sameTimes; } if ($lastSessionId) { if ($lastSessionId != $data[$i]['session_id']) { ++$sessionChgTimes; $lastSessionId = $data[$i]['session_id']; } } else { $lastSessionId = $data[$i]['session_id']; } } } myself()->_rspData(array( 'battle_times' => count($data), 'same_times' => $sameTimes, 'session_chg_times' => $sessionChgTimes, 'survival_time' => $survivalTime, 'data' => $data )); } }