如何为数组项添加值然后增加?

时间:2017-10-29 16:15:36

标签: php

我有一个数组:

$logins= array("login1", "login2", "login3"I;

我有一个所有登录(login1,login2,login3)都可以访问的事件。

现在login1,login2,login3可以无限次点击事件。

我会减少对该事件的访问次数最多2次。

这是代码:

function replaychargeClick($aseco, $command) {
global $replaycharge, $replaybills;


$coppers = $replaycharge['coppers'];
$playerid = $command[0];
$login = $command[1];
$answer = $command[2].'';
$aseco->client->query('GetDetailedPlayerInfo', $login);
$player = $aseco->client->getResponse();
$nickname = $player['NickName'];
    if ($answer == '234561') {
    $aseco->client->query('GetCurrentChallengeInfo');
    $thistrack = $aseco->client->getResponse();
    $aseco->client->query('GetNextChallengeInfo');
    $nexttrack = $aseco->client->getResponse();

    // Check if already being replayed
    if ($thistrack['FileName'] != $nexttrack['FileName']) { 
        //  Check for TMF server
        if ($aseco->server->getGame() == 'TMF') {
            // check for TMUF server
            if ($aseco->server->rights) {
                // check for TMUF player
                if ($player['OnlineRights'] >= 0 ) {

                    // start the transaction
                    $message = 'You need to pay '.$coppers.' coppers to replay the track';
                    $aseco->client->query('SendBill', $login, $coppers, $message, '');
                    $replaybillid = $aseco->client->getResponse();
                    $replaybills[$replaybillid] = array($login, $nickname, $coppers);
                } else {
                $message = formatText($aseco->getChatMessage('UNITED_ONLY'), 'account');
                $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
                }
            } else {
            $message = formatText($aseco->getChatMessage('UNITED_ONLY'), 'server');
            $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
            }
        } else {
        $message = $aseco->getChatMessage('FOREVER_ONLY');
        $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
        }
    } else {
    $message = '>$f00 This track is already being replayed';
    $aseco->client->query('ChatSendServerMessageToLogin', $message, $login);
    }
}

}

那么如何为每次登录添加一个计数器呢?

1 个答案:

答案 0 :(得分:0)

如果要为所有登录存储计数器,只需在数组中添加一个键即可。

$loginsWithCount = array({
  key: "login1,
  count: 0
}, {
  key: "login2,
  count: 0
}, {
  key: "login3,
  count: 0
});

现在,您可以通过循环遍历数组并查找正确的登录对象并更新其计数来更新计数,或者为了优化您可以创建哈希并执行此操作。

$keyToUpdate = 'login1';
$countToUpdate = 10;

foreach ($array as $item) {
    if ($item->key === $keyToUpdate) {
        $item['count'] = $countToUpdate;
    }
}