PHP multidimentional数组值检查
问题描述:
我正在努力与一些“简单”的算法一段时间现在和搜索整个互联网的答案,我放弃了......伤心,我知道。在开始时,我想,我的英语语法等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状态并坠毁:)
答
它很难给出答案,因为我无法理解变量,但我想我明白你想要什么做。
要判断用户是否是唯一具有确切分数或确切结果的用户,您有两个选项(好几个但尽可能简单),对每个循环运行查询以查看如果用户是唯一正确的值或编写使用in_array函数的函数:
in_array() and multidimensional array
编辑:
或者你进入这个循环之前,运行查询和创建'分数'数组并操纵它。
我不会说波兰语,所以我不明白你的变数是什么意思。 –
“wynik”(结果)是匹配结果,即3:1,1:1等。 “wynik_buk”(bookie结果为比赛>) “bet_wynik”(赌注结果)是用户结果 ---- 它有帮助吗? – Gonti
对不起。我将尝试编辑原始文章并解释变量 – Gonti