Php 根据用户输入更改二维数组的大小

Php 根据用户输入更改二维数组的大小,php,arrays,multidimensional-array,dynamic,Php,Arrays,Multidimensional Array,Dynamic,是否可以根据用户输入生成二维数组 例如,我目前有一个大小为2x2的数组,我编写如下: <?php $matrix = array( array($a, $b), array($c, $d) ); ?> 这与我需要的非常接近。假设您知道如何将html表单中的数据发布回服务器,处理请求的php代码可能如下所示。您的问题似乎归结为如何对动态大小的二维数组(矩阵)进行编码 创建嵌套的for循环。内部for循环通过在每行($this\u row

是否可以根据用户输入生成二维数组

例如,我目前有一个大小为2x2的数组,我编写如下:

<?php
    $matrix = array(
        array($a, $b),
        array($c, $d)
    );
?>

这与我需要的非常接近。

假设您知道如何将html表单中的数据发布回服务器,处理请求的php代码可能如下所示。您的问题似乎归结为如何对动态大小的二维数组(矩阵)进行编码

创建嵌套的for循环。内部for循环通过在每行(
$this\u row
)上追加项目来构建每一行:
$this\u 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

?>


您从哪里获得变量?请参见编辑,谢谢您可能需要一些文本或解释,这样就不仅仅是一堆代码了。
<?php
    $matrix = array(
        array($a, $b, $c),
        array($d, $e, $f),
        array($g, $h, $i)
    );
?>
<?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>';
}
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 
<?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

?>