我是php的新手,所以我试图编写一个添加两个3x3矩阵的程序。我在php代码中多次遇到未定义的符号错误。
有没有其他方法可以在php中定义多维数组。`
关于如何解决一维数组的问题,已经有许多程序。它们是默认值的硬编码。为数组中的每个元素提供默认值将很耗时。
这是我的代码:
<html>
<head></head>
<body>
<form action="matAdd.php" method="post">
Enter values in first matrix:
<table cellpadding=10 cellspacing=10>
<tr>
<td>
<table>
<tr><td colspan="3">Matrix 1</td>
</tr>
<tr>
<td><input type="number" name="m00" size="3" required/></td>
<td><input type="number" name="m01" size="3" required/></td>
<td><input type="number" name="m02" size="3" required/></td>
</tr>
<tr>
<td><input type="number" name="m10" size="3" required/></td>
<td><input type="number" name="m11" size="3" required/></td>
<td><input type="number" name="m12" size="3" required/></td>
</tr>
<tr>
<td><input type="number" name="m20" size="3" required/></td>
<td><input type="number" name="m21" size="3" required/></td>
<td><input type="number" name="m22" size="3" required/></td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td colspan="3">Matrix 2</td>
</tr>
<tr>
<td><input type="number" name="n00" size="3" required/></td>
<td><input type="number" name="n01" size="3" required/></td>
<td><input type="number" name="n02" size="3" required/></td>
</tr>
<tr>
<td><input type="number" name="n10" size="3" required/></td>
<td><input type="number" name="n11" size="3" required/></td>
<td><input type="number" name="n12" size="3" required/></td>
</tr>
<tr>
<td><input type="number" name="n20" size="3" required/></td>
<td><input type="number" name="n21" size="3" required/></td>
<td><input type="number" name="n22" size="3" required/></td>
</tr>
</table>
</td>
</tr>
</table>
<center><input type="submit" value="Add"/></center>
</form>
</body>
</html>
<?php
$m = array(array());
$n =array(array());
$sum= array(array());
for($i=0;$i<3;$i++)
{
for($j=0;$j<3;$j++)
{
$m[$i][$j]=$_POST['m'.$i.$j];
$n[$i][$j]=$_POST['n'.$i.$j];
$sum[$i][$j]=$m[$i][$j]+$n[$i][$j];
}
}
echo 'Addition is :';
echo '<table border=1 style="border-collapse:collaspe">';
for($i=0;$i<3;$i++)
{
echo '<tr>';
for($j=0;$j<3;$j++)
{
echo '<td>'.$sum[$i][$j].'</td>';
}
echo '</tr>';
}
echo '</table>';
?>
我在嵌套的for循环中遇到错误,在该循环中,我将post方法中的值转换为多维数组。
答案 0 :(得分:0)
只需尝试更改以下内容
1。。通过
更改您的<form>
<form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?> method="post">
2。将名称属性添加到您的提交按钮
<input type="submit" name ="submit" value="Add"/>
3。。将您的php代码放入
if(isset($_POST['submit'])){
$m = array(array());
$n =array(array());
//your code....
}
希望这可以解决您的问题
答案 1 :(得分:0)
一些解释。您的原始问题主要是由$_POST['m'.$i.$j]
引起的。
在首次执行php脚本时,由于尚未发送任何形式的数据,并且还没有将命名的值添加到$POST
变量中,因此尚未定义它们。
检查if(isset($_POST['submit'])) {
基本上检查是否提交了任何包含数据的表格,并仅在{...}
内部执行代码。
因此,如果您使代码看起来像
if(isset($_POST['submit'])){
//Your original php code goes here
}
它将起作用,因为您的代码仅在提交表单时执行。
这不是一个很好的解释,但这是我所能做的最好的
答案 2 :(得分:0)
我在php中遇到多维数组的未定义索引错误 描述:您的代码正确。只需将数组初始化为foolows。如果再次出现错误,请检查您的通知表
<?php
$m = array();
$n =array();
?>