Я хочу умножить матрицы с помощью PHP, и я хочу, чтобы пользователь указал их размер.
Поэтому я создаю форму и входные данные, чтобы пользователь мог генерировать свои матрицы.
Чтобы загрузить значение каждого поля в матрице, мне нужны разные имена входов в этой матрице (правильно ли я понимаю?)
Моя функция, которая «рисует» матрицу, выглядит так:
function Draw($matrixName, $rows, $columns){
echo '<table> Matrix '.$nazwa.'<br>';
for ($i = 0; $i < $rows; $i++){
echo '<td>';
for ($j = 0; $j < $columns; $j++){
echo '<tr><input type="number" name="'.$nazwa.$i.$j.'"></tr>';
}
echo '</td><br>';
}
echo '</table>';
И вот мой вопрос. Как я могу получить доступ к этому имени или входному значению позже?
Я пробовал это:
function UploadData($name, $rows, $columns){
$matrix = array();
for ($i = 0; $i < $rows; $i++){
for ($j = 0; $j < $columns; $j++){
$matrix[$i][$j] = $_POST['$name.$i.$j'];
}
}
return $matrix;
}
Но похоже, что моя $ матрица пуста. Когда я делаю это
var_dump($matrix[$i][$j]);
или это
var_dump($_POST['$matrix[$i][$j]']);
мой браузер говорит, что это NULL.
Так скажи мне, пожалуйста, где я делаю ошибку, потому что я застрял ..
Я держу свои переменные в $ _SESSION, поэтому я вызываю эти функции следующим образом:
$MatrixA = UploadData("A", $_SESSION['$rowsA'], $_SESSION['$columnsA']);
и перед этой операцией мои значения $ _SESSION [‘$ rowA’] и $ _SESSION [‘$ columnsA’] не равны нулю (я проверял с помощью var_dump).
Во-первых, вы исправили генерацию матрицы таблицы, правильно разместив теги «tr» и «td». Во-вторых, первый аргумент должен совпадать с тем, что вы используете в качестве «имени», изменив его с «$ matrixName» на «$ nazwa».
function Draw($nazwa, $rows, $columns){
echo '<table> Matrix '.$nazwa.'<br>';
for ($i = 0; $i < $rows; $i++){
echo '<tr>';
for ($j = 0; $j < $columns; $j++){
echo '<td><input type="number" name="'.$nazwa.$i.$j.'"></td>';
}
echo '</tr>';
}
echo '</table>';
}
Далее в строке, где вы назначаете значение из POST, удаляются одинарные кавычки.
function UploadData($name, $rows, $columns){
$matrix = array();
for ($i = 0; $i < $rows; $i++){
for ($j = 0; $j < $columns; $j++){
$matrix[$i][$j] = $_POST[ $name . $i .$j ];
}
}
return $matrix;
}
Других решений пока нет …