2012-05-15 53 views
0

我正在努力与一些“简单”的算法一段时间现在和搜索整个互联网的答案,我放弃了......伤心,我知道。在开始时,我想,我的英语语法等PHP multidimentional数组值检查

在此基础上查询道歉:

 

    SELECT a.*, b.* 
    FROM mecze a 
    JOIN bets b 
    ON a.mecz_id = b.mecz_id AND a.wynik != 'NULL' 

我有一个数组“punkty”下面这样的值:基于

 
    [0] => Array 
     (
      [mecz_id] => 1   //match_id 
      [druzyna_1_id] => 1  //team_1_id 
      [druzyna_2_id] => 2  //team_2_id 
      [wynik] => 1:2   //score - of the match 
      [wynik_buk] => 2   //bookie score - of the match 
      [bet_id] => 1   //users bet id 
      [user_id] => 1   //user id :) 
      [bet_wynik] => 3:2  //users bet score 
      [bet_wynik_buk] => 1  //users bookie bet score 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0   //points - here will be added when calculated 
     ) 

    [1] => Array 
     (
      [mecz_id] => 2 
      [druzyna_1_id] => 3 
      [druzyna_2_id] => 4 
      [wynik] => 3:2 
      [wynik_buk] => 1 
      [bet_id] => 2 
      [user_id] => 1 
      [bet_wynik] => 3:2 
      [bet_wynik_buk] => 1 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [2] => Array 
     (
      [mecz_id] => 3 
      [druzyna_1_id] => 2 
      [druzyna_2_id] => 4 
      [wynik] => 1:1 
      [wynik_buk] => 0 
      [bet_id] => 3 
      [user_id] => 1 
      [bet_wynik] => 1:1 
      [bet_wynik_buk] => 0 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [3] => Array 
     (
      [mecz_id] => 1 
      [druzyna_1_id] => 1 
      [druzyna_2_id] => 2 
      [wynik] => 1:2 
      [wynik_buk] => 2 
      [bet_id] => 6 
      [user_id] => 4 
      [bet_wynik] => 3:1 
      [bet_wynik_buk] => 1 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [4] => Array 
     (
      [mecz_id] => 2 
      [druzyna_1_id] => 3 
      [druzyna_2_id] => 4 
      [wynik] => 3:2 
      [wynik_buk] => 1 
      [bet_id] => 7 
      [user_id] => 4 
      [bet_wynik] => 2:3 
      [bet_wynik_buk] => 2 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [5] => Array 
     (
      [mecz_id] => 3 
      [druzyna_1_id] => 2 
      [druzyna_2_id] => 4 
      [wynik] => 1:1 
      [wynik_buk] => 0 
      [bet_id] => 8 
      [user_id] => 4 
      [bet_wynik] => 0:0 
      [bet_wynik_buk] => 0 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [6] => Array 
     (
      [mecz_id] => 1 
      [druzyna_1_id] => 1 
      [druzyna_2_id] => 2 
      [wynik] => 1:2 
      [wynik_buk] => 2 
      [bet_id] => 9 
      [user_id] => 5 
      [bet_wynik] => 1:2 
      [bet_wynik_buk] => 2 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [7] => Array 
     (
      [mecz_id] => 2 
      [druzyna_1_id] => 3 
      [druzyna_2_id] => 4 
      [wynik] => 3:2 
      [wynik_buk] => 1 
      [bet_id] => 10 
      [user_id] => 5 
      [bet_wynik] => 3:3 
      [bet_wynik_buk] => 0 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

    [8] => Array 
     (
      [mecz_id] => 3 
      [druzyna_1_id] => 2 
      [druzyna_2_id] => 4 
      [wynik] => 1:1 
      [wynik_buk] => 0 
      [bet_id] => 11 
      [user_id] => 5 
      [bet_wynik] => 1:1 
      [bet_wynik_buk] => 0 
      [krol] => Mario Gomez (GER) 
      [laczny] => 5 pkt � Hiszpania (2 pkt) 
      [punkty] => 0 
     ) 

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

 

    foreach ($punkty as $k => $v){ 
     $wbuk = $v['wynik_buk'];   //match bookie score 
     $bwbuk = $v['bet_wynik_buk']; //users bookie bet score 
     $w = $v['wynik'];    //match score 
     $bw = $v['bet_wynik'];   //users bet score 

     if($wbuk == $bwbuk) { 
      if ($w == $bw) { 
       $pkt = 4; 
      }else{ 
       $pkt = 1; 
      } 
     } else { 
      $pkt = 0; 
     } 
    } 

上面的代码是否正确分配点,但我想另一件事添加到它。

我想添加一些加分击中右划痕或右确切的结果,如果只有一个用户有这个比分/结果:
2分,如果用户是只有一个用正确的得分(即1或X或2)
1点,如果用户只有一个与右确切结果(即3 :1或1:1等)

请帮助!我知道必须有成千上万的方法来做到这一点,但我的思想是在StackOverflow状态并坠毁:)

+0

我不会说波兰语,所以我不明白你的变数是什么意思。 –

+0

“wynik”(结果)是匹配结果,即3:1,1:1等。 “wynik_buk”(bookie结果为比赛<< ie 1,X,2 >>) “bet_wynik”(赌注结果)是用户结果 ---- 它有帮助吗? – Gonti

+0

对不起。我将尝试编辑原始文章并解释变量 – Gonti

回答

0

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

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

in_array() and multidimensional array

编辑:

或者你进入这个循环之前,运行查询和创建'分数'数组并操纵它。