Php 将数组与自身进行比较
我现在有点困在如何比较这些变量之间,我有24个下拉选项,每个选项中有24个选项可供选择,然后我将它们发布到PHP页面。最简单、最有效的方法是将这些值相互比较,以检查所选的每个选项是否彼此不同,因为24个选项中没有一个是相同的。我知道数组是解决这个问题的方法,只是不确定如何比较它们。 非常感谢您的帮助Php 将数组与自身进行比较,php,Php,我现在有点困在如何比较这些变量之间,我有24个下拉选项,每个选项中有24个选项可供选择,然后我将它们发布到PHP页面。最简单、最有效的方法是将这些值相互比较,以检查所选的每个选项是否彼此不同,因为24个选项中没有一个是相同的。我知道数组是解决这个问题的方法,只是不确定如何比较它们。 非常感谢您的帮助 $id = $_POST[trackid]; $pos1 = $_POST[pos1]; $pos2 = $_POST[pos2]; $pos3 = $_POST[p
$id = $_POST[trackid];
$pos1 = $_POST[pos1];
$pos2 = $_POST[pos2];
$pos3 = $_POST[pos3];
$pos4 = $_POST[pos4];
$pos5 = $_POST[pos5];
$pos6 = $_POST[pos6];
$pos7 = $_POST[pos7];
$pos8 = $_POST[pos8];
$pos9 = $_POST[pos9];
$pos10 = $_POST[pos10];
$pos11 = $_POST[pos11];
$pos12 = $_POST[pos12];
$pos13 = $_POST[pos13];
$pos14 = $_POST[pos14];
$pos15 = $_POST[pos15];
$pos16 = $_POST[pos16];
$pos17 = $_POST[pos17];
$pos18 = $_POST[pos18];
$pos19 = $_POST[pos19];
$pos20 = $_POST[pos20];
$pos21 = $_POST[pos21];
$pos22 = $_POST[pos22];
$pos23 = $_POST[pos23];
$pos24 = $_POST[pos24];
给定一个数组,您可以尝试函数 替代解决方案
有很多方法可以做到这一点,例如for循环,这取决于您的具体需要。首先,您应该在数组索引周围添加引号,而不是使用裸字,这应该会引起警告:
$pos1 = $_POST['pos1'];
要从$\u POST中复制pos*值,应使用循环:
$pos = array();
for ($i = 1; $i <= 24; ++$i) {
$pos["pos$i"] = $_POST["pos$i"];
}
只需在上面做一个数组。首先,您需要将这些POST变量放入一个数组中,而不是将它们拆分
$pos = array();
for ($i = 1; $i <= 24; $i++)
{
$pos["pos$i"] = $_POST["pos$i"];
}
$unique = array_unique($pos);
if (count($unique) == 24)
{
// all good!
}
else
{
// bad!
}
你能说得更清楚些吗?如果没有一个是相同的,那么问题是什么
考虑到您实际上可以多次选择相同的选项,或者您只是想防止攻击,您可以将它们放入数组中,然后使用该函数 真正的问题:$post[pos{i}]是有效的PHP变量语法吗?我从来没有在任何地方看到过它的文档,我总是使用$post[pos{$I}]@Dave Err,不用了。谢谢你的关注。我在用Ruby思考。修复了PHP插值语法。
$pos = array();
for ($i = 1; $i <= 24; ++$i) {
$pos["pos$i"] = $_POST["pos$i"];
}
if (count(array_unique($pos)) == count($pos)) {
# pos contains no duplicates
}
$pos = array();
for ($i = 1; $i <= 24; $i++)
{
$pos["pos$i"] = $_POST["pos$i"];
}
$unique = array_unique($pos);
if (count($unique) == 24)
{
// all good!
}
else
{
// bad!
}