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

如何从给定的玩家中打造许多独特的团队

如何解决如何从给定的玩家中打造许多独特的团队

我正在努力使11名球员组成像板球之类的锦标赛,但是球队必须是独一无二的,这意味着同一队中没有球员两次出战 例如:-我有22位玩家

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
or we have 22 players in two teams
first team:-1,11
second team:-12,22

现在我需要一支像这样的独特球员的队伍 1,22,​​17

我尝试下面的代码

$candidates = array(1,12);

var_dump(getTeam($candidates));

function getTeam($candidates,$team_size = 3)
{
    shuffle($candidates);
    return array_chunk($candidates,$team_size);
}

但是这将给我12位候选人的输出,这将使团队形式成为12位候选人 有什么方法可以让22名队员组成队伍,队伍也必须使用简单的字符串,而不是任何var_dump或数组字符串。

解决方法

看来您走在正确的轨道上,您的职能是根据传来的候选人选出合适大小的随机团队。您可以利用它来获得单个团队。至于如何处理结果,它们只是arrays,因此您可以对它们进行任何操作-使用implode将它们与逗号连在一起,然后将它们回显。

<?php
$candidates = array(1,2,3,4,5,6,7,8,9,10,11,12);

function getTeams($candidates,$team_size = 3)
{
    shuffle($candidates);
    return array_chunk($candidates,$team_size);
}

function getRandomTeam($candidates,$team_size = 3)
{
    $teams = getTeams($candidates,$team_size);
    return array_shift($teams);
}

$output = getTeams($candidates);

echo 'Teams:'.PHP_EOL;
foreach($output as $currTeam)
{
    echo implode(',',$currTeam).PHP_EOL;
}

$output = getRandomTeam($candidates);

echo 'Random Team: ';
echo implode(',$currTeam).PHP_EOL;

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