0

我在一段时间内一直在为一些“简单”的算法苦苦挣扎,在整个互联网上搜索我放弃的答案之后......我知道,很难过。一开始我想为我的英语语法等道歉。

基于此查询:

    选择 a.*、b.*
    从麦切
    加入投注 b
    ON a.mecz_id = b.mecz_id AND a.wynik != 'NULL'

我有一个数组“punkty”,其值如下:

    [0] => 数组
        (
            [mecz_id] => 1 //match_id
            [druzyna_1_id] => 1 //team_1_id
            [druzyna_2_id] => 2 //team_2_id
            [wynik] => 1:2 //score - 比赛
            [wynik_buk] => 2 //bookie 得分 - 比赛
            [bet_id] => 1 //用户下注id
            [user_id] => 1 //用户 id :)
            [bet_wynik] => 3:2 //用户投注分数
            [bet_wynik_buk] => 1 //用户赌注得分
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [punkty] => 0 //points - 这里会在计算的时候加上
        )

    [1] => 数组
        (
            [mecz_id] => 2
            [druzyna_1_id] => 3
            [druzyna_2_id] => 4
            [威尼克] => 3:2
            [wynik_buk] => 1
            [bet_id] => 2
            [user_id] => 1
            [bet_wynik] => 3:2
            [bet_wynik_buk] => 1
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [2] => 数组
        (
            [mecz_id] => 3
            [druzyna_1_id] => 2
            [druzyna_2_id] => 4
            [威尼克] => 1:1
            [wynik_buk] => 0
            [bet_id] => 3
            [user_id] => 1
            [bet_wynik] => 1:1
            [bet_wynik_buk] => 0
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [3] => 数组
        (
            [mecz_id] => 1
            [druzyna_1_id] => 1
            [druzyna_2_id] => 2
            [威尼克] => 1:2
            [wynik_buk] => 2
            [bet_id] => 6
            [user_id] => 4
            [bet_wynik] => 3:1
            [bet_wynik_buk] => 1
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [4] => 数组
        (
            [mecz_id] => 2
            [druzyna_1_id] => 3
            [druzyna_2_id] => 4
            [威尼克] => 3:2
            [wynik_buk] => 1
            [bet_id] => 7
            [user_id] => 4
            [bet_wynik] => 2:3
            [bet_wynik_buk] => 2
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [5] => 数组
        (
            [mecz_id] => 3
            [druzyna_1_id] => 2
            [druzyna_2_id] => 4
            [威尼克] => 1:1
            [wynik_buk] => 0
            [bet_id] => 8
            [user_id] => 4
            [bet_wynik] => 0:0
            [bet_wynik_buk] => 0
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [6] => 数组
        (
            [mecz_id] => 1
            [druzyna_1_id] => 1
            [druzyna_2_id] => 2
            [威尼克] => 1:2
            [wynik_buk] => 2
            [bet_id] => 9
            [user_id] => 5
            [bet_wynik] => 1:2
            [bet_wynik_buk] => 2
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [7] => 数组
        (
            [mecz_id] => 2
            [druzyna_1_id] => 3
            [druzyna_2_id] => 4
            [威尼克] => 3:2
            [wynik_buk] => 1
            [bet_id] => 10
            [user_id] => 5
            [bet_wynik] => 3:3
            [bet_wynik_buk] => 0
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

    [8] => 数组
        (
            [mecz_id] => 3
            [druzyna_1_id] => 2
            [druzyna_2_id] => 4
            [威尼克] => 1:1
            [wynik_buk] => 0
            [bet_id] => 11
            [user_id] => 5
            [bet_wynik] => 1:1
            [bet_wynik_buk] => 0
            [krol] => 马里奥·戈麦斯 (GER)
            [laczny] => 5 包 � Hiszpania (2 包)
            [朋克蒂] => 0
        )

根据上面的数组,我分配分数以获得良好的分数和准确的结果:
玩家得分正确时得 1 分(即 1 或 X 或 2)
当玩家准确得分正确时得 4 分(即 1:1 或3:1 等)

    foreach ( $punkty as $k => $v ){
        $wbuk = $v['wynik_buk']; //匹配博彩分数
        $bwbuk = $v['bet_wynik_buk']; //用户 bookie 投注分数
        $w = $v['wynik']; //匹配分数
        $bw = $v['bet_wynik']; //用户投注分数

        如果($wbuk == $bwbuk){
            如果 ( $w == $bw ) {
                $pkt = 4;
            }别的{
                $pkt = 1;
            }
        } 别的 {
            $pkt = 0;
        }
    }

上面的代码正确地分配了点,但我想向它添加另一件事。

如果只有一个用户有这个分数/结果,我想为达到正确的分数或正确的结果添加一些奖励积分:
如果用户是唯一一个得分正确的人(即 1 或 X 或 2)
,则 2 分如果用户是唯一具有正确结果的(即 3:1 或 1:1 等

请帮忙 !!!我知道必须有成千上万种方法可以做到,但我的思想处于 StackOverflow 状态并崩溃了 :)

4

1 回答 1

0

给出答案很棘手,因为我无法理解变量,但我想我明白你想要做什么。

要判断用户是否是唯一具有准确分数或准确结果的人,您有几个选项(少数但尽可能简单),在每个循环上运行查询以查看用户是否唯一具有正确值的函数或编写一个使用 in_array 函数的函数:

in_array() 和多维数组

编辑:

或者在你进入这个循环之前,运行一个查询并创建一个'score'数组并对其进行操作。

于 2012-05-15T12:57:44.047 回答