0

如何以矩阵格式获取用户输入以在 php 中执行矩阵加法?有人有建议吗?

4

3 回答 3

2

用两个输入框给用户一个选项。第一个用于行,第二个用于列;通过javascript根据这些输入生成一个表格,每个输入框名称都应在生成时基于行和列的数组中。假设,用户输入:- 行:3 列:3

通过 javascript 生成表格,您的表格应该是

<table>
<tr>
    <td><input type="textbox" name="matrix[0][]" value=""/> </td>
    <td><input type="textbox" name="matrix[0][]" value=""/> </td>
    <td><input type="textbox" name="matrix[0][]" value=""/> </td>
</tr>
<tr>
    <td><input type="textbox" name="matrix[1][]" value=""/> </td>
    <td><input type="textbox" name="matrix[1][]" value=""/> </td>
    <td><input type="textbox" name="matrix[1][]" value=""/> </td>
</tr>
<tr>
    <td><input type="textbox" name="matrix[2][]" value=""/> </td>
    <td><input type="textbox" name="matrix[2][]" value=""/> </td>
    <td><input type="textbox" name="matrix[2][]" value=""/> </td>
</tr>
</table>

并在表单发布时得到一个二维数组。

<?php
$matrixArr = $_POST['matrix']; // it will be a two dimenssion array having value as  matrix have
?>
于 2013-08-06T05:36:47.193 回答
1

最简单(也可能是最直观)的方法是向用户展示 a<textarea>并要求他们以下列格式输入矩阵值:

a b
c d

单个行中的值由空格分隔,行由换行符分隔。这是一种从提交的矩阵中生成矩阵的快速简便的方法<textarea>

<?php

  $txt = $_POST['matrix'];

  $mat = explode ("\n", $txt);

  for ($i = 0; $i < sizeof ($mat); ++$i)
    $mat[$i] = explode (' ', $mat[$i]);

?>

当然,相同的代码也适用于以逗号分隔的值,或者您认为合适的任何其他分隔符。

一种不太直观的方法是向用户呈现<input>字段的文字矩阵。

于 2013-08-06T05:30:57.277 回答
1

您可以使用输入字段。

<?php
function show_matrix($num, $cols, $rows){
for($i=0; $i<$rows; $i++){
    for($j=0; $j<$cols; $j++){
        echo '<input size=2 name="matr['.$num.']['.$i.']['.$j.']"/>';
    }
    echo '<br/>';
}
}
show_matrix(0, 3, 3);
echo '<br/>';
show_matrix(1, 3, 3);
?>

第一个矩阵:$_POST['matr'][0],第二个:$_POST['matr'][1]

于 2013-08-06T05:40:31.167 回答