是否可以根据用户输入生成二维数组?
例如,我目前有一个大小为2x2的数组,我编写如下:
<p>The size of my Matrix will be:</p>
<p>Columns:<input type='text' name='columns'> Rows:<input type='text' name='rows'></p>
<input type='submit' value='Compile my Matrices!' name='submit'>
如您所见,此数组充满了变量。我的问题是,如果我有一个文本输入,用户可以设置所需数组的参数,即
<?php
$matrix = array(
array($a, $b, $c),
array($d, $e, $f),
array($g, $h, $i)
);
?>
因此,如果用户输入3列3行(3x3),我将如何创建一个与2x2示例格式相同的数组,以便动态输出数组为:
<?php
$a = rand($min, $max);
$b = rand($min, $max);
$c = rand($min, $max);
$d = rand($min, $max); etc etc
?>
是否也可以在生成时使用这些变量填充数组?
编辑 - 变量将在别处声明,即
for ($i = 0; $i < 5; $i++) {
for ($j=0; $j < 5; $j++){
$matrix[$i][$j] = ('a' . $counter);
$counter++;
//echo $matrix[$i][$j] . ' ';
}
//echo '<br>';
}
其中$ min和$ max由其他参数设置。
EDIT2 - 稍微搞乱了之后,我设法创建了一个矩阵,它可以遵循我要求的正确格式:
a0 a1 a2 a3 a4
a5 a6 a7 a8 a9
a10 a11 a12 a13 a14
a15 a16 a17 a18 a19
a20 a21 a22 a23 a24
这会生成一个格式数组:
cout
接近我的需要。
答案 0 :(得分:1)
假设您知道如何将数据从html表单发送回服务器,处理请求的php代码可能如下所示。看来你的问题归结为如何编码动态大小的二维数组(矩阵)。
创建一个嵌套的for循环。内部for循环通过向其附加项来构建每一行($this_row
):$this_row[] = rand($min, $max);
,然后将每个新行附加到$matrix
数组。
请注意rand
函数,以下示例中未定义$min
和$max
变量。您需要定义它们。
<?php
$num_cols = filter_input(INPUT_POST, 'columns', FILTER_VALIDATE_INT);
$num_rows = filter_input(INPUT_POST, 'rows', FILTER_VALIDATE_INT);
$matrix = array();
for ( $j = 0; $j < $num_rows; $j ++ ) {
$this_row = array()
for ( $k = 0; $k < $num_cols; $k ++ ) {
$this_row[] = rand($min, $max);
}
$matrix[] = $this_row;
}
//now you have your matrix
?>