我在飞镖点脚本中使用的in_array
元素存在问题。
简要说明出了什么问题。我使用in_array来检查飞镖“单人游戏”中同一玩家的重演次数。如果一个玩家玩多个单一游戏,那么只有第一个游戏应该为玩家提供个人排名积分。
不知怎的,它反过来检查(check linked image以供参考(抱歉糟糕的油漆编辑:)))黄色是当前结果,绿色是应该如何。中间4不计算,因为它们是双倍的。
图片: In array diagram http://149.210.139.155/~dfk/tmp/inarray/matchform_inarray_mess2.png
in_array
嵌套在while循环中,所以我不明白这种行为的来源。
in_array代码:
//calculate indiv points
//Player TeamA
if(!in_array($scoresheet[$f_locA][$m_id], $IndivTeamA)){
$scoreA = $scoresheet[$f_locA][$m_po] . "-" . $scoresheet[$f_locB][$m_po];
$IndivTeamA[$scoresheet[$f_locA][$m_id]][rowid] = $scoresheet[$f_locA] [$r_id];
$IndivTeamA[$scoresheet[$f_locA][$m_id]][points] = GetIndivScore($scoreA,$BestOf);
}
//Player TeamB
if(!in_array($scoresheet[$f_locB][$m_id], $IndivTeamB)){
$scoreB = $scoresheet[$f_locB][$m_po] . "-" . $scoresheet[$f_locA][$m_po];
$IndivTeamB[$scoresheet[$f_locB][$m_id]][rowid] = $scoresheet[$f_locB][$r_id];
$IndivTeamB[$scoresheet[$f_locB][$m_id]][points] = GetIndivScore($scoreB,$BestOf);
}
如果有人可以告诉我,我做错了什么或为什么这样做是这样的。我在这里或谷歌上找不到任何关于它的信息。我全力以赴地失去了3个小时。
我不希望这是可能的,因为while循环生成从第1行开始的每一行,因此不可能(对于我的逻辑至少),当php仍然需要生成时,最新的行已经在数组中它
如果我犯了一个愚蠢的错误,请提前感谢你帮我解决问题的努力。
编辑:VAR_DUMP&将行ID添加到图像