public function alist() { $accounts = Account::alist(); $uns = array(); $interval = array(); $last = array(); $aset = array(); $aliving = array(); $account_time = array(); $account_time_count = array(); foreach ($accounts as $account) { $username = $account['username']; $code = $account['code']; $time = $account['time']; if (isset($uns[$username][$code])) { $uns[$username][$code] += 1; } else { $uns[$username][$code] = 1; } if ($code == -1) { if (isset($last[$username])) { $interval[$username] += $last[$username] - $time; $last[$username] = $time; } else { $last[$username] = $time; $interval[$username] = 0; } } if (isset($aset[$username])) { if ($code == -1) { unset($aset[$username]); } elseif ($code == 0) { if (isset($account_time[$username])) { $account_time[$username] += $aset[$username] - $time; $account_time_count[$username] += 1; } else { $account_time[$username] = $aset[$username] - $time; $account_time_count[$username] = 1; } } else { return redirect('/'); } } else { if ($code == -1) { continue; } elseif ($code == 0) { $aliving[$username] = True; } else { $aset[$username] = $time; } } } $res = array(); foreach ($uns as $username => $codes) { $tmp = array(); $tmp[0] = $username; $tmp[1] = 0; $tmp[2] = 0; $tmp[3] = 0; $tmp[4] = 0; if ($codes['-1'] < 2) { $tmp[5] = 0; } else { $tmp[5] = Variables::secordtoHMSF($interval[$username] / ($codes['-1'] - 1)); } if (isset($account_time_count[$username])) { $tmp[6] = Variables::secordtoHMSF($account_time[$username] / $account_time_count[$username]); } else { $tmp[6] = 0; } foreach ($codes as $code => $count) { if ($code == 0) { $tmp[1] = $count; } elseif ($code == 9302) { $tmp[2] = $count; } elseif ($code == 9400) { $tmp[3] = $count; } elseif ($code != -1) { $tmp[4] += $count; } } $res[] = $tmp; } return view('account.alist', compact('res', 'aliving')); }