dora12345678 2018-05-29 01:56
浏览 22
已采纳

如何在PHP中配对玩家? [关闭]

I started learning and I am making a project for a home fifa18 cup. I have one problem, I don't know how I can pair all players I mean: Player1, Player2, Player3, Player4

=> P1 vs P2, P1 vs P3, P1 vs P4 
=> P2 vs P3, P2 vs P4 
=> P3 vs P4

I use Newton formula n!/k!(n-k)! to count how many match without revenge will be and have all players in $tab.

So now, my question, how can I pair this?

Like that and it will be not repetition & P1 vs P1 example.

<?php
    require("server/baza.php");
    $przelacznik = 1;//$_POST['losuj'];
    $zapytanie = "select nick from mecze";
    if($przelacznik == 1){
        $wynik = mysqli_query($polaczenie,$zapytanie);
        $tab = array();
        $n=0;
        while($wiersz = mysqli_fetch_assoc($wynik)){ 
            array_push($tab,$wiersz['nick']);
            //$tab[] = $wiersz;
            $n++;  
        }
        $Nsilnia = 1;
        $NKsilnia =1;
        for ($i=1; $i<=$n; $i++) {
            $Nsilnia *= $i;
        }
        for($j=1;$j<=($n-2);$j++){
            $NKsilnia *= $j;
        }
        $ilosc_rozgrywek = ($Nsilnia)/(2*$NKsilnia);
}
?>

展开全部

  • 写回答

4条回答 默认 最新

  • dsfhd78978 2018-05-29 02:19
    关注

    If P1 vs P2 and P2 vs P1 are not same. Then use this one.

    $player_list = ['p1', 'p2', 'p3', 'p4'];
    $player_pair = array();
    foreach($player_list as $key => $player){
        for($i = 0; $i < count($player_list); $i++ ){
            if($i != $key){
                $player_pair[] =  $player_list[$i] . ' VS ' . $player;
            }
        }
    }
    print_r($player_pair);
    

    ELSE USE THIS ONE:

    $player_list = ['p1', 'p2', 'p3', 'p4'];
    $player_pair = array();
    foreach($player_list as $key => $player){
        for($i = 0; $i < count($player_list); $i++ ){
            $str = $player_list[$i] . ' VS ' . $player;
            $str2 = $player . ' VS ' . $player_list[$i];
            if($i != $key && !in_array($str, $player_pair) && !in_array($str2, $player_pair)){
                $player_pair[] =  $player_list[$i] . ' VS ' . $player;
            }
        }
    }
    print_r($player_pair);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部