如果按输入的表单名称进行Else语句


If Else statements by inputted form name

有没有一种方法可以通过输入字段名编写if-else语句?

我有一个动态创建9个输入字段的循环,

环路

for($i=0; $i<($n*$n); $i++){
    echo "<tr>";
for($j=0; $j<($n*$n); $j++){
        $number = "column".$i.$j;
        if($i%$n==0 && $j%$n==0 && $j!==0 && $i!==0){
        echo "<td><input class='field'  type='text' name=$number value=$_POST[$number]></td>";
        }

输出是这样的。

<input class="field" type="text" name="column00" value="1">
<input class="field" type="text" name="column01" value="2">
<input class="field" type="text" name="column02" value="1">
.....
<input class="field" type="text" name="column09" value="3">

所以我想做的是,如果第1行到第9行上有一个输入的数字与第1行和第9行中的另一个数字相等,它会回声出有不止一个数字彼此相等。

我试过这样的东西,但不起作用。

if($number==$number){
echo = "equal number in the same row";
}

为一行中的所有输入创建一个数组。然后执行:

$unique = array_unique($row_values);
if (count($unique) != count($row_values)) {
    echo "No duplicate numbers in a row!";
}

对每列执行相同的操作。

使用以下形式的字段名:

<input name="number[<row>][<column>]" ...

例如:

<input name="number[0][0]" value="1" />
<input name="number[0][1]" value="2" />
<input name="number[0][2]" value="5" />
<input name="number[0][3]" value="3" />
...
<input name="number[1][0]" value="4" />
<input name="number[1][1]" value="9" />

张贴后,您将收到一个二维数组:

[[1, 2, 5, 3, ...], [4, 9, ...]]

现在它基本上变成了一个阵列问题,你必须解决:

  1. 所有行和列
  2. 每个网格中的行和列

帮助您查找数组中多次出现的值:

$multiples = array_filter(array_count_values($arr), function($freq) {
    return $freq > 1;
});
// outputs a non-empty array with the numbers that occur more than once.
print_r(array_keys($multiples));