PHP逻辑-如何处理分数关系?

PHP逻辑-如何处理分数关系?,php,logic,Php,Logic,我正试图根据分数分配奖品。说到领带,我的逻辑有问题。有谁能给我一些关于处理3人或3人以上的平局的逻辑指导吗 更新: 目标是这样的- 把只绑了他们的人排成一列 知道那些人的处境。 我有几个示例阶段,您可以浏览一下: 示例1-适用于0个领带 <?php function give_prize($a, $b) {return;} $prize = array(500, 250, 75); $user = array( 'user1' => 650, 'user2' =&

我正试图根据分数分配奖品。说到领带,我的逻辑有问题。有谁能给我一些关于处理3人或3人以上的平局的逻辑指导吗

更新: 目标是这样的-

把只绑了他们的人排成一列 知道那些人的处境。 我有几个示例阶段,您可以浏览一下:

示例1-适用于0个领带

<?php
function give_prize($a, $b) {return;}

$prize = array(500, 250, 75);

$user = array(
    'user1' => 650,
    'user2' => 500,
    'user3' => 200,
    'user4' => 100,
);

$prize_count = count($prize);

for ($i = 0; $i < $prize_count; $i++) {
    give_prize($user[$i], $prize[$i]);
}
示例2-与1条领带配合使用是一种好方法吗

<?php   
for ($i = 0; $i < $prize_count; $i++) {

    if (isset($user[$i+1])) {
        if ($user[$i] == $user[$i++]) {
            // My Tie breaker code
        }
    }
}

但是如果是3人或4人,我会怎么做?我是否应该按照上面的步骤进行更多的if检查?

我将首先按分数对用户进行分组,然后按降序对这些组进行排序。一旦完成,无论你有什么规则,分配奖品都会更容易

$usersByScore = array();
foreach ($user as $name => $score) {
    $usersByScore[$score][] = $name;
}
krsort($usersByScore);
例如,这将打开输入$user

进入$usersByScore:


现在,您可以随心所欲地颁发奖品。

我将首先按分数对用户进行分组,然后按降序对这些组进行排序。一旦完成,无论你有什么规则,分配奖品都会更容易

$usersByScore = array();
foreach ($user as $name => $score) {
    $usersByScore[$score][] = $name;
}
krsort($usersByScore);
例如,这将打开输入$user

进入$usersByScore:


现在你可以随心所欲地颁发奖品。

这取决于比赛规则。如果两个人并列第一,他们都能获得一等奖吗?换言之,你会颁发四个奖品而不是三个吗?如果不是的话,你会在每个级别的用户之间分配奖品吗?我不知道你的平局破坏者代码想做什么。。。它是如何打破平局的?嘿,伙计们,我不是在寻找打破平局的密码。我只是想找出一个好办法来匹配所有打成平局的人如果$user[$i]==$user[$i++],则始终为真,因为您使用了后增量,这取决于平局的规则。如果两个人并列第一,他们都能获得一等奖吗?换言之,你会颁发四个奖品而不是三个吗?如果不是的话,你会在每个级别的用户之间分配奖品吗?我不知道你的平局破坏者代码想做什么。。。它是如何打破平局的?嘿,伙计们,我不是在寻找打破平局的密码。我只是想找出一个好办法来匹配所有打成平局的人如果$user[$i]==$user[$i++]这总是正确的,因为您使用了PostIncrementionWow,这实际上可能正是我想要达到的!哇,这可能正是我想要达到的目标!
$usersByScore = array(
    750 => array('user3'),
    500 => array('user1', 'user4'),
    400 => array('user2'),
);