有没有办法用输入字段名写一个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";
}
答案 0 :(得分:1)
从一行中输入所有输入的数组。然后做:
$unique = array_unique($row_values);
if (count($unique) != count($row_values)) {
echo "No duplicate numbers in a row!";
}
对每列做同样的事情。
答案 1 :(得分:1)
使用此表单中的字段名称:
<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, ...]]
现在它基本上变成了你必须解决的数组问题:
帮助您找到在数组中多次出现的值:
$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));