PHP-无法将数组元素用作隐藏表单值
我必须用PHP制作一个名为“Lights Out”的小游戏,我首先制作一个5x5矩阵,每个元素必须是0到1之间随机选择的数字 稍后,当我想处理我的文件并访问在无线电输入中选择的选项(打开或关闭)时,我必须知道在哪个单元格中指示了无线电。我试图将以下内容添加到我的值中:PHP-无法将数组元素用作隐藏表单值,php,Php,我必须用PHP制作一个名为“Lights Out”的小游戏,我首先制作一个5x5矩阵,每个元素必须是0到1之间随机选择的数字 稍后,当我想处理我的文件并访问在无线电输入中选择的选项(打开或关闭)时,我必须知道在哪个单元格中指示了无线电。我试图将以下内容添加到我的值中:[$row][$column],但似乎不起作用(错误:偏移类型非法) 有人能告诉我为什么我会犯这个错误吗?我真的需要知道收音机在哪一行哪一列 提前谢谢 <form action="Processing.php" met
[$row][$column]
,但似乎不起作用(错误:偏移类型非法)
有人能告诉我为什么我会犯这个错误吗?我真的需要知道收音机在哪一行哪一列
提前谢谢
<form action="Processing.php" method="post">
<?php
$matrix = array(
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1))
);
echo "<table border=\"1\">"; // echo matrix in a html table
foreach ($matrix as $row) { // rows
echo "<tr>";
foreach ($row as $column) { // columns
echo "<td>";
echo $column . "<br />";
echo "<input type=\"radio\" name=\"I_O\" value=\"O $matrix[$row][$column]\" /> O"; // off
echo "<br />";
echo "<input type=\"radio\" name=\"I_O\" value=\"I $matrix[$row][$column]\" /> I"; // on
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
?></form>
您的
foreach
结构只提供值,但您将它们用作数组的索引。我已经做了一些准备(还没有测试),但这应该会帮助您:
<form action="Processing.php" method="post">
<?php
$matrix = array(
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1)),
array(rand(0,1), rand(0,1), rand(0,1), rand(0,1), rand(0,1))
);
echo "<table border=\"1\">"; // echo matrix in a html table
foreach ($matrix as $rowIx => $row) { // rows
echo "<tr>";
foreach ($row as $columnIx => $val) { // columns
$checked = $val ? 'checked="checked" ' : '';
echo "<td>";
echo $val . "<br />";
echo "<input type=\"radio\" name=\"I_O\" $checked value=\"{$rowIx},{$columnIx}\" />";
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
?></form>
编辑:使单选按钮值成为矩阵中以逗号分隔的行和列索引。
$row
是一个数组,如果需要偏移量,请使用foreach($x=>$row的矩阵)
其中$x是偏移量/索引,$row是数据谢谢@iautomation,但是我必须如何实现隐藏表单值中的行数和列数呢?下面的答案似乎概述了我很抱歉地告诉您这一点,但这并不是我想要的。当我在Processing.php中发布该radio的值时,我想得到检查该radio的行和列的编号。我已经更改了该编号,在Processing的服务器端为“rowIx,columnIx”。您可以使用list($rowIx,$columnIx)=分解(',',$)
将值返回到单独的变量中。