PHP-无法将数组元素用作隐藏表单值

PHP-无法将数组元素用作隐藏表单值,php,Php,我必须用PHP制作一个名为“Lights Out”的小游戏,我首先制作一个5x5矩阵,每个元素必须是0到1之间随机选择的数字 稍后,当我想处理我的文件并访问在无线电输入中选择的选项(打开或关闭)时,我必须知道在哪个单元格中指示了无线电。我试图将以下内容添加到我的值中:[$row][$column],但似乎不起作用(错误:偏移类型非法) 有人能告诉我为什么我会犯这个错误吗?我真的需要知道收音机在哪一行哪一列 提前谢谢 <form action="Processing.php" met

我必须用PHP制作一个名为“Lights Out”的小游戏,我首先制作一个5x5矩阵,每个元素必须是0到1之间随机选择的数字

稍后,当我想处理我的文件并访问在无线电输入中选择的选项(打开或关闭)时,我必须知道在哪个单元格中指示了无线电。我试图将以下内容添加到我的值中:
[$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)=分解(',',$)
将值返回到单独的变量中。