PHP:比较两组数字,没有错误


PHP: Compare two sets of numbers, no dupes

我正在为我的网站创建一个彩票比赛,我需要知道比较数字的最简单方法,这样两个人就不能选择相同的数字。这是7组数字,每个数字都是1到30之间的数字。

例如,如果用户1选择:1、7、9、17、22、25、29,我如何确保用户2不能选择相同的数字?

我想把所有7个数字都放入一个数组中,按照数字的顺序排序,然后把它们连接成一个字符串。然后,当另一个用户选择他们的7个数字时,它也会这样做,然后将两者进行比较。有更好的方法吗?

你所描述的对我来说是最好的方式,IF你在同一个脚本中处理所有提交-我会trim(implode(',',$array))排序数组,将结果字符串存储在数组中,并调用in_array()来确定值是否已经存在。

但是我怀疑您实际所做的是将所选内容存储在数据库表中,并将以后提交的内容与该表进行比较。在这种情况下(我在这里假设MySQL,但我认为它是PHP使用的最常见的引擎),您应该创建一个包含7列choice_1choice_2。。。choice_7(以及您想要的任何其他列),并在所有七个choice_*列之间创建一个唯一索引。这意味着,当您尝试插入重复的行时,查询将失败。这让MySQL为您完成所有工作。

尝试array_diff。php.net上有一些非常好的例子。