我正在为我的网站创建一个彩票竞赛,我需要知道比较数字的最简单方法,这样就没有两个人可以选择相同的数字。它是7组数字,每个数字是1到30之间的数字。
例如,如果用户1选择:1,7,9,17,22,25,29,我如何确保用户2不能选择相同的确切号码?
我正在考虑将所有7个数字放入一个数组中,对它进行排序以使数字按顺序排列,然后将它们连接成一个字符串。然后当另一个用户选择他们的7个数字时,它会做同样的事情,然后比较两个。有没有更好的方法呢?
答案 0 :(得分:6)
您所描述的内容听起来对我来说是最好的方式, IF 您正在处理同一脚本中的所有提交内容 - 我会trim(implode(',',$array))
排序的数组,将生成的字符串存储在数组并调用in_array()
以确定该值是否已存在。
HOWEVER 我怀疑你实际在做的是将选择存储在数据库表中,并将以后提交的内容与此表进行比较。在这种情况下(我冒昧并在这里假设MySQL,但我会说它是PHP最常用的引擎)你应该创建一个包含7列choice_1
,choice_2
...的表格。 {1}}(以及您想要的任何其他列)并在所有七个 choice_7
列中创建唯一索引。这意味着当您尝试插入重复行时,查询将失败。这让MySQL可以为您完成所有工作。
答案 1 :(得分:0)
试试array_diff。 php.net上有一些很好的例子。