微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何拥有 = 使用投票表?

如何解决如何拥有 = 使用投票表?

使用 https://github.com/julien-boudry/Condorcet

考虑这种形式:

<html>
    <body>
        <form method="post">
        Wingspan: <select name="item[Wingspan]" id="Wingspan">
                         <option value="1">1</option>
                         <option value="2">2</option>
                         <option value="3">3</option>
                         <option value="4">4</option>
                 </select><br />
        Scythe:  <select name="item[Scythe]" id="Scythe">
                         <option value="1">1</option>
                         <option value="2">2</option>
                         <option value="3">3</option>
                         <option value="4">4</option>
                 </select><br />
        Spirit Island: <select name="item[Spirit Island]" id="Spirit Island">
                         <option value="1">1</option>
                         <option value="2">2</option>
                         <option value="3">3</option>
                         <option value="4">4</option>
                  </select><br />
        Everdell: <select name="item[Everdell]" id="Everdell">
                         <option value="1">1</option>
                         <option value="2">2</option>
                         <option value="3">3</option>
                         <option value="4">4</option>
                  </select<br />
        <input type="submit" name="submit" value="submit">
        </form>
    </body>
</html>

那么这段代码

arsort($_POST['item']);
    foreach ($_POST['item'] as $game => $priority) {
            $games[] = $game;
    }

输出

Array
(
    [0] => Wingspan
    [1] => Scythe
    [2] => Spirit Island
    [3] => Everdell
)

然后是这个孔多塞:

    Condorcet::setDefaultMethod('Schulze'); // Argument: A supported method  

    $election = new Election ();

    $election->addCandidate(new Candidate ('Wingspan'));
    $election->addCandidate(new Candidate ('Scythe'));
    $election->addCandidate(new Candidate ('Spirit Island'));
    $election->addCandidate(new Candidate ('Everdell'));


$Vote = new Vote ( $games );
$election->addVote($Vote);  
print_r($Vote->getSimpleRanking());

echo 'Schulze winner is : ' . $election->getWinner('Schulze')->getName() . '<br />';

不过效果很好,但如果两个候选人的排名相同怎么办?如果必须有 = 呢?我知道解决方案是 foreach() 但我坚持使用它?具有相同等级的多个项目应该像这样构建: 4 => ['item1','item2'] 但如何?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。